擅长:python、mysql、java
<p>我是这样做的</p>
<pre><code>df = pd.read_csv('/home/desktop/test.csv' )
</code></pre>
<p>将日期转换为日期时间</p>
^{pr2}$
<p>按您需要的方式对数据帧进行排序</p>
<pre><code>df = df.sort(['CUSIP','date'], ascending=[True,False]).groupby('CUSIP')
</code></pre>
<p>定义聚合时发生的情况(根据排序方式)</p>
<pre><code>def return_first(pd_series):
return pd_series.values[0]
</code></pre>
<p>使dict对所有列应用相同的函数</p>
<pre><code>agg_dict = {c: return_first for c in df.columns}
</code></pre>
<p>最终聚集</p>
<pre><code>df = df.agg(agg_dict)
</code></pre>
<p>编辑:
将日期转换为日期时间可避免此类错误:</p>
<pre><code>In [12]: df.sort(['CUSIP','date'],ascending=[True,False])
Out[12]:
date CUSIP COLA COLB COLC date_time
6 1999-12-12 CCC 223 5120 3.651450 1999-12-12 00:00:00
5 1998-12-12 CCC 234 5140 3.241450 1998-12-12 00:00:00
8 1997-12-4 DDD 999 9999 9.999999 1997-12-04 00:00:00
9 1997-12-05 DDD 245 6150 3.250000 1997-12-05 00:00:00
7 1992-07-6 DDD 234 4677 3.485577 1992-07-06 00:00:00
</code></pre>