Skip to main content
`Ctrl`+`K`

# Version 0.6.0 (November 25, 2011)

## New features

- Added `melt` function to `pandas.core.reshape`

- Added `level` parameter to group by level in Series and DataFrame descriptive statistics (GH 313)

- Added `head` and `tail` methods to Series, analogous to DataFrame (GH 296)

- Added `Series.isin` function which checks if each value is contained in a passed sequence (GH 289)

- Added `float_format` option to `Series.to_string`

- Added `skip_footer` (GH 291) and `converters` (GH 343) options to `read_csv` and `read_table`

- Added `drop_duplicates` and `duplicated` functions for removing duplicate DataFrame rows and checking for duplicate rows, respectively (GH 319)

- Implemented operators ‘&’, ‘|’, ‘^’, ‘-’ on DataFrame (GH 347)

- Added `Series.mad`, mean absolute deviation

- Added `QuarterEnd` DateOffset (GH 321)

- Added `dot` to DataFrame (GH 65)

- Added `orient` option to `Panel.from_dict` (GH 359, GH 301)

- Added `orient` option to `DataFrame.from_dict`

- Added passing list of tuples or list of lists to `DataFrame.from_records` (GH 357)

- Added multiple levels to groupby (GH 103)

- Allow multiple columns in `by` argument of `DataFrame.sort_index` (GH 92, GH 362)

- Added fast `get_value` and `put_value` methods to DataFrame (GH 360)

- Added `cov` instance methods to Series and DataFrame (GH 194, GH 362)

- Added `kind='bar'` option to `DataFrame.plot` (GH 348)

- Added `idxmin` and `idxmax` to Series and DataFrame (GH 286)

- Added `read_clipboard` function to parse DataFrame from clipboard (GH 300)

- Added `nunique` function to Series for counting unique elements (GH 297)

- Made DataFrame constructor use Series name if no columns passed (GH 373)

- Support regular expressions in read_table/read_csv (GH 364)

- Added `DataFrame.to_html` for writing DataFrame to HTML (GH 387)

- Added support for MaskedArray data in DataFrame, masked values converted to NaN (GH 396)

- Added `DataFrame.boxplot` function (GH 368)

- Can pass extra args, kwds to DataFrame.apply (GH 376)

- Implement `DataFrame.join` with vector `on` argument (GH 312)

- Added `legend` boolean flag to `DataFrame.plot` (GH 324)

- Can pass multiple levels to `stack` and `unstack` (GH 370)

- Can pass multiple values columns to `pivot_table` (GH 381)

- Use Series name in GroupBy for result index (GH 363)

- Added `raw` option to `DataFrame.apply` for performance if only need ndarray (GH 309)

- Added proper, tested weighted least squares to standard and panel OLS (GH 303)

## Performance enhancements

- VBENCH Cythonized `cache_readonly`, resulting in substantial micro-performance enhancements throughout the code base (GH 361)

- VBENCH Special Cython matrix iterator for applying arbitrary reduction operations with 3-5x better performance than `np.apply_along_axis` (GH 309)

- VBENCH Improved performance of `MultiIndex.from_tuples`

- VBENCH Special Cython matrix iterator for applying arbitrary reduction operations

- VBENCH + DOCUMENT Add `raw` option to `DataFrame.apply` for getting better performance when

- VBENCH Faster cythonized count by level in Series and DataFrame (GH 341)

- VBENCH? Significant GroupBy performance enhancement with multiple keys with many “empty” combinations

- VBENCH New Cython vectorized function `map_infer` speeds up `Series.apply` and `Series.map` significantly when passed elementwise Python function, motivated by (GH 355)

- VBENCH Significantly improved performance of `Series.order`, which also makes np.unique called on a Series faster (GH 327)

- VBENCH Vastly improved performance of GroupBy on axes with a MultiIndex (GH 299)

## Contributors

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

- Adam Klein +

- Chang She +

- Dieter Vandenbussche

- Jeff Hammerbacher +

- Nathan Pinger +

- Thomas Kluyver

- Wes McKinney

- Wouter Overmeire +