如何根据在熊猫数据框中的其他列上应用条件来提取列值
Posted
技术标签:
【中文标题】如何根据在熊猫数据框中的其他列上应用条件来提取列值【英文标题】: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
请帮忙。 :)
【问题讨论】:
【参考方案1】:将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.
【讨论】:
我想要找出爆头击杀最大的同一行的“击杀”值 @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 是的!非常感谢:)以上是关于如何根据在熊猫数据框中的其他列上应用条件来提取列值的主要内容,如果未能解决你的问题,请参考以下文章