#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, что и выше,
# код pythondf = 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