Skip to main content
`Ctrl`+`K`

# Versions 0.4.1 through 0.4.3 (September 25 - October 9, 2011)

## New features

- Added Python 3 support using 2to3 (GH 200)

- Added `name` attribute to `Series`, now prints as part of `Series.__repr__`

- `Series.isnull()` and `Series.notnull()` (GH 209, GH 203)

- Added `Series.align` method for aligning two series with choice of join method (ENH56)

- Added method `get_level_values` to `MultiIndex` (GH 188)

- Set values in mixed-type `DataFrame` objects via `.ix` indexing attribute (GH 135)

- Added new `DataFrame` methods `get_dtype_counts` and property `dtypes` (ENHdc)

- Added ignore_index option to `DataFrame.append` to stack DataFrames (ENH1b)

- `read_csv` tries to sniff delimiters using `csv.Sniffer` (GH 146)

- `read_csv` can read multiple columns into a `MultiIndex`; DataFrame’s `to_csv` method writes out a corresponding `MultiIndex` (GH 151)

- `DataFrame.rename` has a new `copy` parameter to rename a DataFrame in place (ENHed)

- Enable unstacking by name (GH 142)

- Enable `sortlevel` to work by level (GH 141)

## Performance enhancements

- Altered binary operations on differently-indexed SparseSeries objects to use the integer-based (dense) alignment logic which is faster with a larger number of blocks (GH 205)

- Wrote faster Cython data alignment / merging routines resulting in substantial speed increases

- Improved performance of `isnull` and `notnull`, a regression from v0.3.0 (GH 187)

- Refactored code related to `DataFrame.join` so that intermediate aligned copies of the data in each `DataFrame` argument do not need to be created. Substantial performance increases result (GH 176)

- Substantially improved performance of generic `Index.intersection` and `Index.union`

- Implemented `BlockManager.take` resulting in significantly faster `take` performance on mixed-type `DataFrame` objects (GH 104)

- Improved performance of `Series.sort_index`

- Significant groupby performance enhancement: removed unnecessary integrity checks in DataFrame internals that were slowing down slicing operations to retrieve groups

- Optimized `_ensure_index` function resulting in performance savings in type-checking Index objects

- Wrote fast time series merging / joining methods in Cython. Will be integrated later into DataFrame.join and related functions

## Contributors

A total of 2 people contributed patches to this release. People with a “+” by their names contributed a patch for the first time.

- Thomas Kluyver +

- Wes McKinney