我希望我能为我的问题找到帮助.我正在寻找以下问题的解决方案:
我有一个dataFrame,如:
Sp Mt Value count
0 MM1 S1 a **3**
1 MM1 S1 n 2
2 MM1 S3 cb 5
3 MM2 S3 mk **8**
4 MM2 S4 bg **10**
5 MM2 S4 dgd 1
6 MM4 S2 rd 2
7 MM4 S2 cb 2
8 MM4 S2 uyi **7**
Run Code Online (Sandbox Code Playgroud)
我的目标是获取组之间计数最大的结果行,例如:
0 MM1 S1 a **3**
1 3 MM2 S3 mk **8**
4 MM2 S4 bg **10**
8 MM4 S2 uyi **7**
Run Code Online (Sandbox Code Playgroud)
有人知道我怎么能在熊猫或python中做到这一点?
UPDATE
我没有提供更多关于我的问题的细节.对于我的问题,我想按['Sp','Mt'分组.让我们举个第二个例子:
Sp Mt Value count …Run Code Online (Sandbox Code Playgroud) 我有以下数据帧:
obj_id data_date value
0 4 2011-11-01 59500
1 2 2011-10-01 35200
2 4 2010-07-31 24860
3 1 2009-07-28 15860
4 2 2008-10-15 200200
Run Code Online (Sandbox Code Playgroud)
我想得到这些数据的一个子集,这样我每个都只有最新的(最大的'data_date')数据.'value''obj_id'
我已经破解了一个解决方案,但感觉很脏.我想知道是否有人有更好的方法.我敢肯定我必须错过一些通过熊猫这么简单的方法.
我的方法主要是分组,排序,检索和重组,如下所示:
row_arr = []
for grp, grp_df in df.groupby('obj_id'):
row_arr.append(dfg.sort('data_date', ascending = False)[:1].values[0])
df_new = DataFrame(row_arr, columns = ('obj_id', 'data_date', 'value'))
Run Code Online (Sandbox Code Playgroud)