我有两个如下所示的数据框。
***df1 = pd.DataFrame({'a':[1,1,2,2,3,3], 'b':[1,2,1,2,1,2], 'c':[1,2,4,0,0,2]})***
df1
a b c
0 1 1 1 1 1 2 2 2 2 1 4 3 2 2 0 4 3 1 0 5 3 2 2
***df2 = pd.DataFrame({'a':[1,1,2,2], 'b':[1,2,1,2], 'c':[1,5,6,2]})***
df2
a b c
0 1 1 1 1 1 2 5 2 2 1 6 3 2 2 2
我想同时应用两个数据帧的内部联接,并且不希望使用df2中的列,因此尝试使用以下代码。
***merged_df = df1.merge(df2, how='inner', left_on=["a", "b"], right_on=["a","b"])***
a b c_x c_y
0 1 1 1 1 1 1 2 2 5 2 2 1 4 6 3 2 2 0 2
从上面的代码中,没有手动删除c_x和c_y,基本上有没有办法不合并正确的dataframe(df2),我想要df1中的所有列,并且合并后不想要df2中的任何列。提前致谢。
想法是在此处仅过滤要合并的列a,b
。如果要按两列合并,on
则应省略参数(然后按两列中的列交点合并大熊猫DataFrames
):
merged_df = df1.merge(df2[["a", "b"]])
像这样工作:
merged_df = df1.merge(df2[["a", "b"]], on=['a','b'])
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句