我有两个带有X和Y列和行的pandas DataFrames dfA
和dfB
。
我需要在dfB
上附加dfA
,以创建dfC
。我需要在dfA
和dfB
中具有列名的列上追加。
此外,如果dfA
中的列名未出现在dfB
中,则dfC
应该包含Nan值。
为简化起见,
dfA
外观
c1 c2 c3
0 AX1 AX2 AX3
1 AY1 AY2 AY3
2 AZ1 AZ2 AZ3
dfB
看起来像
c1 c2 c4
0 BX1 BX2 BX3
1 BY1 BY2 BY3
2 BZ1 BZ2 BZ3
dfC
应该看起来像
c1 c2 c3
0 AX1 AX2 AX3
1 AY1 AY2 AY3
2 AZ1 AZ2 AZ3
3 BX1 BX2 Nan
4 BY1 BY2 Nan
5 BZ1 BZ2 Nan
我该怎么做?
答案 0 :(得分:1)
尝试一下
pd.concat([dfA,dfB[['c1','c2']]])
避免对列进行硬编码
尝试一下
inter=list(set(dfA.columns)&set(dfB.columns))
print pd.concat([dfA,dfB[inter]])
答案 1 :(得分:1)
使用concat
并过滤dfA
的列:
df = pd.concat([dfA, dfB])[dfA.columns]
或按intersection
过滤列:
cols = dfA.columns.intersection(dfB.columns)
df = pd.concat([dfA, dfB[cols]])