在下面的代码中,每个“Person”都有一个对应的“Sales”值,但是当我执行时,print(compData.max())
“Vanessa”得到了“340”的值,该值在首字母“df”中属于“Amy”
import numpy as np
import pandas as pd
data = {'Company':['GOOG','GOOG','MSFT','MSFT','FB','FB'],
'Person':['Sam','Charlie','Amy','Vanessa','Carl','Sarah'],
'Sales':[200,120,340,124,243,350]}
df = pd.DataFrame(data)
compData = df.groupby('Company')
print(df)
print(compData.max())
print(df.loc[3])
以下是输出:
Company Person Sales
0 GOOG Sam 200
1 GOOG Charlie 120
2 MSFT Amy 340
3 MSFT Vanessa 124
4 FB Carl 243
5 FB Sarah 350
Person Sales
Company
FB Sarah 350
GOOG Sam 200
MSFT Vanessa 340
Company MSFT
Person Vanessa
Sales 124
另外,当我执行print(df.loc[3])
时,“Vanessa”会获得正确的值
我想在Pibe_chorro的回答中添加一个替代解决方案,该解决方案直接为您提供每家公司的最大销售额和销售人员,包括原始指数:
这给了你:
如果需要,可以使用pd.DataFrame.sort_index()按索引排序
其结果是:
正如Luiggi指出的,
groupby.max()
返回每个列的最大值要获取所需内容,可以在
'Sales'
中搜索具有最大值的索引,如下所示:从here偷来的
也许有更简单的方法,但这就是我发现的
相关问题 更多 >
编程相关推荐