Индекс максимального значения Pandas

#python #pandas #twitter #indexing #max

#python #pandas #Twitter #индексирование #макс

Вопрос:

У меня есть фрейм данных Pandas с набором экранных имен, твитов, избранных и т. Д. Я хочу найти максимальное значение ‘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()
  

Кажется, я ничего не могу найти по этому поводу, кто-нибудь может помочь мне направить меня в правильном направлении?

Ответ №1:

Используется argmax() idxmax() для получения индекса максимального значения. Затем вы можете использовать loc

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

Редактировать: argmax() теперь устарел, переключается на idxmax()

Комментарии:

1. если ваш столбец содержит только значения nan, это приведет к TypeError

Ответ №2:

Я думаю, вам нужно idxmax — получить индекс максимального значения favcount , а затем выбрать значение в столбце sn по 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
  

Ответ №3:

Используя тот же 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