удаление строк информационного кадра на основе значений в другом информационном кадре - PullRequest
0 голосов
/ 21 ноября 2018

Я работаю над набором данных IPL из Kaggle (https://www.kaggle.com/manasgarg/ipl).. Он имеет два CSV-файла с первичным ключом для соединения данных. Я хочу отбросить строки, в которых команда ватин проиграла матч. У df_deliv есть команда ватинУ df_match есть победитель матча

Я добился этого, используя приведенный ниже код, но он очень медленный из-за цикла for.

import pandas as pd
import numpy as np

df_deliv = pd.read_csv("deliveries.csv")
df_match = pd.read_csv("matches.csv")
df_deliv = df_deliv[["match_id", "batting_team", "batsman", "batsman_runs"]]
df_deliv["winner"] = [df_match.loc[i-1]["winner"] for i in df_deliv["match_id"]] #makes it very slow
df_deliv.drop(df_deliv[df_deliv["batting_team"] != df_deliv["winner"]].index, inplace = True)
print(df_deliv)

есть ли способ сделать в одном df.dropутверждение, а не цикл for ???

1 Ответ

0 голосов
/ 21 ноября 2018

Вместо удаления вы можете просто отфильтровать нужные вам строки.Как то так:

df_deliv = df_deliv[df_deliv['batting_team']==df_deliv['winner']]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...