1.. _whatsnew_04x: 2 3Versions 0.4.1 through 0.4.3 (September 25 - October 9, 2011) 4------------------------------------------------------------- 5 6{{ header }} 7 8New features 9~~~~~~~~~~~~ 10 11- Added Python 3 support using 2to3 (:issue:`200`) 12- :ref:`Added <dsintro.name_attribute>` ``name`` attribute to ``Series``, now 13 prints as part of ``Series.__repr__`` 14- :ref:`Added <missing.isna>` instance methods ``isnull`` and ``notnull`` to 15 Series (:issue:`209`, :issue:`203`) 16- :ref:`Added <basics.align>` ``Series.align`` method for aligning two series 17 with choice of join method (ENH56_) 18- :ref:`Added <advanced.get_level_values>` method ``get_level_values`` to 19 ``MultiIndex`` (:issue:`188`) 20- Set values in mixed-type ``DataFrame`` objects via ``.ix`` indexing attribute (:issue:`135`) 21- Added new ``DataFrame`` :ref:`methods <basics.dtypes>` 22 ``get_dtype_counts`` and property ``dtypes`` (ENHdc_) 23- Added :ref:`ignore_index <merging.ignore_index>` option to 24 ``DataFrame.append`` to stack DataFrames (ENH1b_) 25- ``read_csv`` tries to :ref:`sniff <io.sniff>` delimiters using 26 ``csv.Sniffer`` (:issue:`146`) 27- ``read_csv`` can :ref:`read <io.csv_multiindex>` multiple columns into a 28 ``MultiIndex``; DataFrame's ``to_csv`` method writes out a corresponding 29 ``MultiIndex`` (:issue:`151`) 30- ``DataFrame.rename`` has a new ``copy`` parameter to :ref:`rename 31 <basics.rename>` a DataFrame in place (ENHed_) 32- :ref:`Enable <reshaping.unstack_by_name>` unstacking by name (:issue:`142`) 33- :ref:`Enable <advanced.sortlevel_byname>` ``sortlevel`` to work by level (:issue:`141`) 34 35Performance enhancements 36~~~~~~~~~~~~~~~~~~~~~~~~ 37 38- Altered binary operations on differently-indexed SparseSeries objects 39 to use the integer-based (dense) alignment logic which is faster with a 40 larger number of blocks (:issue:`205`) 41- Wrote faster Cython data alignment / merging routines resulting in 42 substantial speed increases 43- Improved performance of ``isnull`` and ``notnull``, a regression from v0.3.0 44 (:issue:`187`) 45- Refactored code related to ``DataFrame.join`` so that intermediate aligned 46 copies of the data in each ``DataFrame`` argument do not need to be created. 47 Substantial performance increases result (:issue:`176`) 48- Substantially improved performance of generic ``Index.intersection`` and 49 ``Index.union`` 50- Implemented ``BlockManager.take`` resulting in significantly faster ``take`` 51 performance on mixed-type ``DataFrame`` objects (:issue:`104`) 52- Improved performance of ``Series.sort_index`` 53- Significant groupby performance enhancement: removed unnecessary integrity 54 checks in DataFrame internals that were slowing down slicing operations to 55 retrieve groups 56- Optimized ``_ensure_index`` function resulting in performance savings in 57 type-checking Index objects 58- Wrote fast time series merging / joining methods in Cython. Will be 59 integrated later into DataFrame.join and related functions 60 61.. _ENH1b: https://github.com/pandas-dev/pandas/commit/1ba56251f0013ff7cd8834e9486cef2b10098371 62.. _ENHdc: https://github.com/pandas-dev/pandas/commit/dca3c5c5a6a3769ee01465baca04cfdfa66a4f76 63.. _ENHed: https://github.com/pandas-dev/pandas/commit/edd9f1945fc010a57fa0ae3b3444d1fffe592591 64.. _ENH56: https://github.com/pandas-dev/pandas/commit/56e0c9ffafac79ce262b55a6a13e1b10a88fbe93 65 66Contributors 67~~~~~~~~~~~~ 68 69.. contributors:: v0.4.1..v0.4.3 70