Pandas - 合并 2 个数据帧,仅将第一个数据帧中的列作为输出

Pandas - Merge 2 dataframes, only with columns from the first dataframe as output

假设我有一个包含如下列的数据框:

A B C X F

另一个数据框有列:

A J L B C

如何将第二个数据框中的行添加到只有 5 列的第一个数据框中?我不希望 J 列和 L 列出现在最终数据框中。

还假设还有很多其他列我不想要,那么有没有办法不指定列名就可以做到这一点?这将是巨大的...

使用 Index.intersection 过滤来自 df2 的列 df1.columns:

#if all columns from df1 are in df2
df22 = df2[df1.columns]
#if NOT all columns from df1 are in df2
df22 = df2[df2.columns.intersection(df1.columns)]

然后使用DataFrame.append:

df = df1.append(df22, ignore_index=True)

concat:

df = pd.concat([df1, df22], ignore_index=True)

另一种解决方案是在 df1 中按列追加新行后进行过滤:

df = pd.concat([df1, df2], ignore_index=True)[df1.columns]