簡體   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