<p>这需要0.13.1(对于<code>infer_datetime_format</code>)。这比
直接使用日期分析器。这将把datelike转换为正确的<code>datetime64[ns]</code>数据类型。</p>
<pre><code>In [75]: df = read_csv(StringIO(data),
sep=';',
decimal=',',
infer_datetime_format=True,
parse_dates=['Date1','Date2']
).dropna(how='all',axis=1)
In [76]: df
Out[76]:
Date1 Date2 Company Reference Description Value Currency
0 2014-01-24 2014-01-23 Company1 Debit Text -100 EUR
1 2014-01-24 2014-01-24 Company2 Debit Text -130 EUR
2 2014-01-21 2014-01-24 Company1 Debit Text -50 EUR
3 2014-01-21 2014-01-21 Company3 Credit Text 600 EUR
4 2014-02-17 2014-01-16 Company2 Debit Text -110 EUR
5 2014-02-16 2014-01-16 Company1 Credit Text 40 EUR
6 2014-03-02 2014-03-02 Company6 Debit Text 90 EUR
[7 rows x 7 columns]
</code></pre>
<p>这需要0.14/master,这将是使用基于时间和其他分组器进行多重分组的新的简单方法。</p>
<pre><code>In [77]: df.groupby([pd.Grouper(freq='MS',key='Date1'),'Reference']).sum().unstack()
Out[77]:
Value
Reference Credit Debit
Date1
2014-01-01 600 -280
2014-02-01 40 -110
2014-03-01 NaN 90
[3 rows x 2 columns]
</code></pre>
<p><;0.14/master您可以执行以下操作:</p>
<pre><code>In [79]: df.set_index('Date1').groupby(lambda x: (x.year,x.month)).apply(lambda x: x.groupby('Reference').sum()).unstack()
Out[79]:
Value
Reference Credit Debit
(2014, 1) 600 -280
(2014, 2) 40 -110
(2014, 3) NaN 90
[3 rows x 2 columns]
</code></pre>