3
3
v.0.7.0 (Not Yet Released)
4
4
--------------------------
5
5
6
+ API Changes
7
+ ~~~~~~~~~~~
8
+
6
9
New features
7
10
~~~~~~~~~~~~
8
11
12
+ - New unified :ref:`merge function <merging.join>` for efficiently performing
13
+ full gamut of database / relational-algebra operations. Refactored existing
14
+ join methods to use the new infrastructure, resulting in substantial
15
+ performance gains (GH220_, GH249_, GH267_)
16
+
17
+ - New :ref:`unified concatenation function <merging.concat>` for concatenating
18
+ Series, DataFrame or Panel objects along an axis. Can form union or
19
+ intersection of the other axes. Improves performance of ``Series.append`` and
20
+ ``DataFrame.append`` (GH468_, GH479_, GH273_)
21
+
22
+ - :ref:`Can <merging.concatenation>` pass multiple DataFrames to
23
+ `DataFrame.append` to concatenate (stack) and multiple Series to
24
+ ``Series.append`` too
25
+
26
+ - :ref:`Can<basics.dataframe.from_list_of_dicts>` pass list of dicts (e.g., a
27
+ list of JSON objects) to DataFrame constructor (GH526_)
28
+
9
29
- You can now :ref:`set multiple columns <indexing.columns.multiple>` in a
10
30
DataFrame via ``__getitem__``, useful for transformation (GH342_)
11
31
12
- - New ``merge`` :ref:`function <merging.join>` for efficiently performing full
13
- gamut of database / relational-algebra operations. Refactored existing join
14
- methods to use the new infrastructure, resulting in substantial performance
15
- gains (GH220_, GH249_, GH267_)
16
-
17
32
- Handle differently-indexed output values in ``DataFrame.apply`` (GH498_)
18
33
19
34
.. ipython:: python
20
35
21
36
df = DataFrame(randn(10, 4))
22
37
df.apply(lambda x: x.describe())
23
38
24
- - :ref:`Can<basics.dataframe.from_list_of_dicts>` pass list of dicts (e.g., a
25
- list of shallow JSON objects) to DataFrame constructor (GH526_)
26
-
27
39
- :ref:`Add<indexing.reorderlevels>` ``reorder_levels`` method to Series and
28
40
DataFrame (PR534_)
29
41
30
- - :ref:`Add<indexing.dictionarylike>` dict-like ``get`` function to DataFrame and Panel (PR521_)
42
+ - :ref:`Add<indexing.dictionarylike>` dict-like ``get`` function to DataFrame
43
+ and Panel (PR521_)
31
44
32
45
- :ref:`Add<basics.iterrows>` ``DataFrame.iterrows`` method for efficiently
33
46
iterating through the rows of a DataFrame
@@ -59,10 +72,6 @@ New features
59
72
- :ref:`Can <merging.multiple_join>` pass multiple Panels to ``Panel.join``
60
73
(GH115_)
61
74
62
- - :ref:`Can <merging.concatenation>` pass multiple DataFrames to
63
- `DataFrame.append` to concatenate (stack) and multiple Series to
64
- ``Series.append`` too
65
-
66
75
- :ref:`Added <io.formatting>` ``justify`` argument to ``DataFrame.to_string``
67
76
to allow different alignment of column headers
68
77
@@ -86,49 +95,6 @@ presort the data, thus achieving a significant speedup (GH93_). Here's a
86
95
graph of the performance of this operation over time on a dataset with 100,000
87
96
rows and 10,000 unique groups:
88
97
89
-
90
- .. .. code-block:: ipython
91
-
92
- .. In [5]: df
93
- .. Out[5]:
94
- .. <class 'pandas.core.frame.DataFrame'>
95
- .. Int64Index: 100000 entries, 0 to 99999
96
- .. Data columns:
97
- .. data 100000 non-null values
98
- .. key1 100000 non-null values
99
- .. key2 100000 non-null values
100
- .. dtypes: float64(1), object(2)
101
-
102
- .. In [6]: df[:10]
103
- .. Out[6]:
104
- .. data key1 key2
105
- .. 0 2.708 4 1
106
- .. 1 -1.945 2 4
107
- .. 2 -1.123 2 0
108
- .. 3 0.09592 0 0
109
- .. 4 2.328 0 3
110
- .. 5 -0.6481 0 0
111
- .. 6 0.2957 3 2
112
- .. 7 0.7336 2 1
113
- .. 8 0.371 2 4
114
- .. 9 1.009 2 4
115
-
116
- .. In [6]: df.groupby(['key1', 'key2']).sum()
117
- .. Out[6]:
118
- .. data
119
- .. key1 key2
120
- .. 0 0 114
121
- .. 1 -14.69
122
- .. 2 89.06
123
- .. 3 -61.31
124
- .. 4 -32.24
125
- .. 1 0 57.91
126
- .. 1 -16.08
127
- .. 2 -46.51
128
- .. 3 15.46
129
- .. 4 18.96
130
- .. ...
131
-
132
98
.. image:: vbench/figures/groupby_multi_cython.png
133
99
:width: 6in
134
100
@@ -171,11 +137,14 @@ similar operation to the above but using a Python function:
171
137
.. _GH220: https://github.com/wesm/pandas/issues/220
172
138
.. _GH249: https://github.com/wesm/pandas/issues/249
173
139
.. _GH267: https://github.com/wesm/pandas/issues/267
140
+ .. _GH273: https://github.com/wesm/pandas/issues/273
174
141
.. _GH338: https://github.com/wesm/pandas/issues/338
175
142
.. _GH342: https://github.com/wesm/pandas/issues/342
176
143
.. _GH374: https://github.com/wesm/pandas/issues/374
177
144
.. _GH439: https://github.com/wesm/pandas/issues/439
145
+ .. _GH468: https://github.com/wesm/pandas/issues/468
178
146
.. _GH476: https://github.com/wesm/pandas/issues/476
147
+ .. _GH479: https://github.com/wesm/pandas/issues/479
179
148
.. _GH489: https://github.com/wesm/pandas/issues/489
180
149
.. _GH492: https://github.com/wesm/pandas/issues/492
181
150
.. _GH496: https://github.com/wesm/pandas/issues/496
0 commit comments