第一个数据帧d1:索引列是州和城市
**2008q2 2009q2 Price Ratio**
**State City**
Alabama Montevallo 119000.000000 125200.000000 0.950479
Tuscaloosa 139366.666667 136933.333333 1.017770
Alaska Fairbanks 254733.333333 225833.333333 1.127970
第二个数据帧d2:
State City
0 Alabama Auburn
1 Alabama Florence
2 Alabama Tuscaloosa
我需要过滤掉/删除d1中[State,City]不在d2中的行。
答案 0 :(得分:1)
您可以join
使用inner
加入:
df = df2.join(df1, on=['State','City'], how='inner')
print (df)
State City 2008q2 2009q2 Price Ratio
2 Alabama Tuscaloosa 139366.666667 136933.333333 1.01777
如果仅on
中的相同列的交集,则可以省略merge
,参数df
的另一个解决方案:
df = pd.merge(df1.reset_index(), df2)
#df = pd.merge(df1.reset_index(), df2, on=['State','City'])
print (df)
State City 2008q2 2009q2 Price Ratio
0 Alabama Tuscaloosa 139366.666667 136933.333333 1.01777
答案 1 :(得分:0)
执行了以下步骤:
从外部联接中提取left_only条目以获取rows_in_df1_not_in_df2。
**2008q2 2009q2 Price Ratio**
州城 Alabama Montevallo 119000.000000 125200.000000 0.950479 阿拉斯加费尔班克斯254733.333333 225833.333333 1.127970
想知道布尔屏蔽是否有其他方式?