Pandas最大值索引

42

我有一个Pandas DataFrame,其中包括不同的屏幕名称、推文、赞等信息。我想要找到'favcount'的最大值(这一步我已经完成了),并且还要返回该'tweet'的屏幕名称。

df = pd.DataFrame()
df['timestamp'] = timestamp
df['sn'] = sn
df['text'] = text
df['favcount'] = fav_count


print df
print '------'
print df['favcount'].max()

我似乎在这方面找不到任何信息,有人可以帮助指导我吗?

3个回答

81

使用 argmax() idxmax() 函数获取最大值的索引。然后您可以使用 loc 函数。

df.loc[df['favcount'].idxmax(), 'sn']

编辑:argmax()现已弃用,请转换为idxmax()


1
如果您的列仅包含NaN值,则会导致TypeError错误。 - Max Segal

20

我认为你需要 idxmax 函数- 获取 favcount 列中最大值的索引,然后通过 loc 选择列 sn 中的值:

df = pd.DataFrame({'favcount':[1,2,3], 'sn':['a','b','c']})

print (df)
   favcount sn
0         1  a
1         2  b
2         3  c

print (df.favcount.idxmax())
2

print (df.loc[df.favcount.idxmax()])
favcount    3
sn          c
Name: 2, dtype: object

print (df.loc[df.favcount.idxmax(), 'sn'])
c

0

使用与上面相同的df,

# Python代码

df = pd.DataFrame({'favcount':[1,2,3], 'sn':['a','b','c']})

print(df) favcount sn 0 1 a 1 2 b 2 3 c

## 您可以使用max() print(df[df.favcount.max() == df['favcount']])

favcount sn 2 3 c

## 如果您需要特定的列,可以选择它 print(df[df.favcount.max() == df['favcount']].sn)

2 c


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接