Как извлечь значения столбца на основе применения условия к другому столбцу в панде - PullRequest
0 голосов
/ 24 октября 2018
print("Someone has killed {:.4f} with headshot, have {} kills, while the most kills ever recorded is {}.".format(pubg_main_df['headshotKills'].max(), pubg_main_df[pubg_main_df['headshotKills']==pubg_main_df['headshotKills'].max()]['kills'], pubg_main_df['kills'].max()))

То, что я хочу, это получить значение 'Kills', где headshotKills макс.

Но я получаю:

Кто-то убил 26.0000 выстрелом в голову, имеет 91005060 Имя: убийства, dtype: int64 убийств, в то время как наибольшее количество убийств, когда-либо зарегистрированных, составляет 60.

Это должно было быть:

Кто-то убил 26.0000 выстрелами в голову, имеет 42 убийства, в то время как большинствоКоличество зарегистрированных убийств - 60.

Тип переменных:

headshotKills int64

убийства int64

Пожалуйста, помогите.:)

1 Ответ

0 голосов
/ 24 октября 2018

Использование set_index с idxmax:

#sample data
pubg_main_df= pd.DataFrame({'kills':[60,  42], 'headshotKills':[3, 26]})

print("Someone has killed {:.4f} with headshot, have {} kills, while the most kills ever recorded is {}."
            .format(pubg_main_df['headshotKills'].max(), 
                    pubg_main_df.set_index('kills')['headshotKills'].idxmax(), 
                    pubg_main_df['kills'].max()))


Someone has killed 26.0000 with headshot, have 42 kills, while the most kills ever recorded is 60.
...