web-dev-qa-db-fra.com

Pandas indice de valeur max.

J'ai un Pandas DataFrame avec un mélange de noms d'écran, de tweets, de fav, etc. Je veux trouver la valeur maximale de 'favcount' (ce que j'ai déjà fait) et retourner également le nom d'écran de ce "Tweet"

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


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

Je n'arrive pas à trouver quoi que ce soit à ce sujet, quelqu'un peut-il m'aider dans la bonne direction?

15
mGarsteck

Utilisation argmax() idxmax() pour obtenir l'index de la valeur max. Ensuite, vous pouvez utiliser loc

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

Modifier:argmax()est maintenant déconseillé, en remplacement deidxmax()

28
Steven G

Je pense que vous avez besoin de idxmax - obtenez l'index de la valeur maximale de favcount puis sélectionnez la valeur dans la colonne sn par loc :

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
8
jezrael