相关疑难解决方法(0)

Python:使用groupby获取具有最大值的行

我希望我能为我的问题找到帮助.我正在寻找以下问题的解决方案:

我有一个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)

python max pandas pandas-groupby

194
推荐指数
11
解决办法
21万
查看次数

pandas - 获取由另一列索引的特定列的最新值(获取由另一列索引的特定列的最大值)

我有以下数据帧:

   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)

python pandas

17
推荐指数
4
解决办法
1万
查看次数

标签 统计

pandas ×2

python ×2

max ×1

pandas-groupby ×1