我有两个不同尺寸的数据框(即):
df1
A B
0 1 10
1 2 11
2 3 12
3 4 13
4 5 14
df2
A B C
0 1 10 10
1 3 12 12
2 4 13 13
我知道如何检索两个数据框中存在的元素:
dfnew = df1.loc[df1.set_index(list(df1.columns)).index.isin(df2.set_index(list(df2.columns)).index)]
另一方面,我想要的,只检索两个数据帧中存在的列的名称,并将它们存储在变量中,例如:
a= [ A, B, C]
答案 0 :(得分:1)
#use set on df columns to get the intersections:
list(set(df1.columns).union(set(df2.columns)))
答案 1 :(得分:1)
如果只需要列名称的联合,我认为你需要union
:
df1.columns.union(df2.columns).tolist()
样品:
df1 = pd.DataFrame(columns=['A', 'B'])
df2 = pd.DataFrame(columns=['A', 'B', 'C'])
L = df1.columns.union(df2.columns).tolist()
print (L)
['A', 'B', 'C']
使用numpy.union1d
加快解决方案:
L = np.union1d(df1.columns, df2.columns).tolist()
print (L)
['A', 'B', 'C']