繁体   English   中英

如何遍历 Pandas DF 中的列以检查某个值并返回同一行但来自不同列的值?

[英]How to iterate over a column in a Pandas DF to check for a certain value and return a value in the same row but from a different column?

df 包含基于事件的足球数据。 所以我想要做的是遍历 action_name 列并查找值 'goal' 如果找到我然后想要存储来自与 'goal' 操作名称在同一行中的多个其他列的值。 以下是数据结构的示例。

数据结构

所以在这种情况下,我想为 DF 中的每个目标返回 pos_dest_x、pos_dest_y 和 possesion_number,并将它们存储为新的 DF。

这样做的各种方法:

columns_wanted = ['pos_dest_x','pos_dest_y','possession_number']

# 1
df.loc[df.action_name == 'Goal'][columns_wanted]

# 2 
df[df.action_name == 'Goal'][columns_wanted]

# 3
df.query('action_name == "Goal"')[columns_wanted]

在第 1 和第 2 种情况下,您可以执行df.action_namedf['action_name']

您可以在此处找到更多信息: https : //pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html

这应该可以解决问题:

df.loc[df["action_name"]=="Goal", ["pos_dest_x", "pos_dest_y", "possesion_number"]]

假设您的 df 具有名称actions_df ,您应该能够运行如下内容:

goals_df = actions_df[actions_df['action_name']=="Goal"][['pos_dest_x','pos_dest_y','possession_number']]

它从actions_df中选择行,其中actions_df等于目标,并将列过滤到您想要查看的列。

如果您的数据框称为 df. 你可以做:

reduced_dataset = df[df['action_name']=='Goal']

这将为您生成操作为目标的数据集。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM