繁体   English   中英

根据其他数据框中的值删除数据框行

[英]dropping dataframe rows based on values in other dataframe

我正在从Kaggle( https://www.kaggle.com/manasgarg/ipl )处理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循环中执行???

除了删除之外,您还可以过滤所需的行。 像这样:

df_deliv = df_deliv[df_deliv['batting_team']==df_deliv['winner']]

暂无
暂无

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

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