我有一种“主”数据框,我只想将另一个数据框中的匹配列附加到
df:
A B C
1 2 3
df_to_append:
A B C D E
6 7 8 9 0
问题是当我使用df.append()
时,它还会将不匹配的列附加到df。
df = df.append(df_to_append, ignore_index=True)
Out:
A B C D E
1 2 3 NaN NaN
6 7 8 9 0
但是我想要的输出是删除D和E列,因为它们不是原始数据帧的一部分吗?也许我需要使用pd.concat
?我认为我无法使用pd.merge
,因为我没有可以合并的唯一内容。
答案 0 :(得分:3)
使用concat
join='inner
pd.concat([df,df_to_append],join='inner')
Out[162]:
A B C
0 1 2 3
0 6 7 8
答案 1 :(得分:2)
只需选择两个df
共有的列:
df.append(df_to_append[df.columns], ignore_index=True)
答案 2 :(得分:1)
最简单的方法是使用df.columns
获取两个数据框共有的列列表,但是如果您不知道所有原始列都包含在df_to_append
中,那么您需要找到两个集合的交集:
cols = list(set(df.columns) & set(df_to_append.columns))
df.append(df_to_append[cols], ignore_index=True)