如何根据复杂的条件过滤数据帧?



现在我的数据框看起来像这样(我简化了它,因为原来有数百行)

import pandas as pd
Winner=[[1938,"Italy"],[1950,"Uruguay"],[2014,"Germany"]]
df=pd.DataFrame(Winner, columns=['Year', 'Winner'])
print(df)
MatchB=[[1938,"Germany",1.0],[1938,"Germany",2.0],[1938,"Brazil",1.0],[1950,"Italy",2.0],[1950,"Spain",2.0],[1950,"Spain",1.0],[1950,"Spain",1.0],[1950,"Brazil",1.0],
[2014,"Italy",2.0],[2014,"Spain",3.0],[2014,"Germany",1.0]]
df2B=pd.DataFrame(MatchB, columns=['Year', 'Away Team Name','Away Team Goals'])
df2B

我想过滤df2B,这样我将有"年";和"客场球队名称";匹配df:

过滤列表(简化)

我查了谷歌,但找不到任何有用的

可以合并

df = pd.merge(left=df, right=df2B, left_on=["Year", "Winner"], right_on=["Year", "Away Team Name"])
print(df)

输出:

Year   Winner Away Team Name  Away Team Goals
0  2014  Germany        Germany              1.0

最新更新