【问题标题】:How to extract column values based on applying condition on other column in pandas dataframe如何根据在熊猫数据框中的其他列上应用条件来提取列值
【发布时间】:2019-03-28 20:16:52
【问题描述】:
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()))

我想要的是在 headshotKills 最大的地方获得 'Kills' 的值。

但我得到了:

有人用爆头杀死了 26.0000,有 910050 60 名称:kills,dtype:int64 杀死,而有记录的最多杀死是 60。

应该是:

有人用爆头杀死了 26.0000,有 42 次击杀,而有记录的最多击杀数是 60。

变量的类型有:

headshotKills int64

杀死int64

请帮忙。 :)

【问题讨论】:

    标签: python pandas jupyter-notebook data-science data-analysis


    【解决方案1】:

    set_indexidxmax 一起使用:

    #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.
    

    【讨论】:

    • 我想要找出爆头击杀最大的同一行的“击杀”值
    • @PrakashShelke - 所以pubg_main_df.set_index('kills')['headshotKills'].idxmax() 不工作?
    • 不,'有人用爆头杀死了 26.0000 人,有 60 人杀死,而有记录的最多杀死人是 60' 以上是结果。
    • @PrakashShelke - 如果检查print(pubg_main_df.sort_values('headshotKills', ascending=False)) 第一行是什么?在对第一行进行排序后,显示最大 headshotKills 的行并杀死。如果有 kills=60 那么你的输出是正确的。
    • 是的!谢谢@jezrael headshotKills 26 杀死 60 是的!非常感谢:)
    猜你喜欢
    • 1970-01-01
    • 2020-10-21
    • 1970-01-01
    • 2017-03-11
    • 2019-07-25
    • 2023-03-17
    • 2016-08-09
    • 1970-01-01
    • 2020-09-23
    相关资源
    最近更新 更多