Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Groupby返回最大值的整行_Python_Pandas - Fatal编程技术网

Python Groupby返回最大值的整行

Python Groupby返回最大值的整行,python,pandas,Python,Pandas,如何获取groupby relsult的完整数据行 df a b c d e 0 a 25 12 1 20 1 a 15 1 1 1 2 b 12 1 1 1 3 n 25 2 3 3 In [4]: df = pd.read_clipboard() In [5]: df.groupby('a')['b'].max() Out[5]: a a 25 b 12 n 25 Name: b, dtype:

如何获取groupby relsult的完整数据行

df
   a   b   c  d   e
0  a  25  12  1  20
1  a  15   1  1   1
2  b  12   1  1   1
3  n  25   2  3   3

In [4]: df = pd.read_clipboard()

In [5]: df.groupby('a')['b'].max()
Out[5]: 
a
a    25
b    12
n    25
Name: b, dtype: int64
这辆车怎么排得满满的

a   b   c  d   e
a  25  12  1  20
b  12   1  1   1
n  25   2  3   3
我尝试过过滤,但大小不同:(

原始数据:

0          1       2        3     4        5     6      7       8    9   
EVE00101  Trial  DRY RUN  PASS  1610071  1610071  Y  20140808  NaN  29   

10        11                12           13                 14  
FF1  ./ff1.sh  Event Validation  Hive Tables  2015-11-30 9:40:34 

Groupby([1,7])[14].max()
给出了结果,但在以1和7作为索引的分组序列中,我需要相应的列。它是15000行数据,提供了一行示例我将使用覆盖“b”列,然后使用以下方法删除重复的“a”行:

您可以使用
argmax()


这样,即使
b
不是最大的列,它也能工作。

因为您只选择了列“b”。是的,我只想按
'b'
分组,您必须提供数据以便我可以复制,一种可能是您有
NaN
值,
transform
被设计为返回与原始df对齐的序列,不清楚它如何生成比原始dfHi感谢EdChum更多的行,但是我得到了这个错误
长度不匹配:预期的axis有14793个元素,新值有15279个元素
,在我的实际数据中,原因是什么?它并不总是返回出现最大值的行?如果尝试
df,它会起作用吗['b']=df.groupby('a')['b'].transform(pd.Series.max)
?不用担心,我认为博维尔上校的答案在语义上是正确且更简单的方法
In [331]:
df['b'] = df.groupby('a')['b'].transform('max')
df

Out[331]:
   a   b   c  d   e
0  a  25  12  1  20
1  a  25   1  1   1
2  b  12   1  1   1
3  n  25   2  3   3

In [332]:    
df.drop_duplicates('a')

Out[332]:
   a   b   c  d   e
0  a  25  12  1  20
2  b  12   1  1   1
3  n  25   2  3   3
In [287]: df.groupby('a', as_index=False).apply(lambda x: x.loc[x.b.argmax(),])
Out[287]:
   a   b   c  d   e
0  a  25  12  1  20
1  b  12   1  1   1
2  n  25   2  3   3