Как перебрать столбец в Pandas DF, чтобы проверить определенное значение и вернуть значение в той же строке, но из другого столбца? - PullRequest
0 голосов
/ 07 февраля 2020

df содержит данные о футбольных событиях. Итак, я собираюсь перебрать столбец action_name и найти значение 'target', если оно найдено, затем я хочу сохранить значения из нескольких других столбцов, которые находятся в той же строке, что и имя действия 'goal'. Ниже приведен пример структуры данных.

data structure

Так что в этом случае я хочу вернуть pos_dest_x, pos_dest_y и possesion_number для каждой цели в DF и сохраните их как новый DF.

Ответы [ 4 ]

1 голос
/ 07 февраля 2020

Различные способы сделать это:

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_name, либо df['action_name']

Более подробную информацию вы найдете здесь: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html

0 голосов
/ 07 февраля 2020

Предполагая, что ваш df имеет имя actions_df, вы должны иметь возможность выполнить что-то вроде:

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

, который выбирает строки из actions_df, где action_name равно цели, и фильтрует столбцы до тех, которые вы хотите увидеть.

0 голосов
/ 07 февраля 2020

Если ваш фрейм данных называется df. Вы можете сделать:

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

Это даст вам набор данных, где действие - Цель.

0 голосов
/ 07 февраля 2020

Это должно сработать:

df.loc[df["action_name"]=="Goal", ["pos_dest_x", "pos_dest_y", "possesion_number"]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...