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

## New features

- Added Python 3 support using 2to3 (GH200)

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

- Added instance methods `isnull` and `notnull` to Series (GH209, GH203)

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

- Added method `get_level_values` to `MultiIndex` (GH188)

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

- 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` (GH146)

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

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

- Enable unstacking by name (GH142)

- Enable `sortlevel` to work by level (GH141)

## 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 (GH205)

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

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

- 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 (GH176)

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

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

- 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

For contributors, please see /usr/share/doc/contributors_list.txt or https://github.com/pandas-dev/pandas/graphs/contributors