0
我有兩個數據框和一些列名是相同的,有些是不同的。我想製作一個只有通用列名稱的合併數據框。熊貓:合併兩個數據框並只保留常用列名
例如
d1 = {'group' : ('A', 'B', 'C') , 'names' : ('alpha', 'beta', 'gamma') ,'num1': (1,2,3)}
df1 = pd.DataFrame(d1)
d2 = {'group' : ('B', 'C', 'D',) , 'names' : ('Beta','Gamma','Delta') ,'num2': (4,5,6)}
df2=pd.DataFrame(d2)
我們做出具有數據框中只有group
和names
但不num1
和num2
,我這樣做
L1=list(df1.columns)
L2=list(df2.columns)
L=list(set(L1).intersection(L2))
df=pd.merge(df1,df2, on=L,how='outer')
cols = [col for col in df.columns if col not in L]
df=df.drop(cols,axis=1)
df
這個工作對我來說完全沒有問題,但我相信有一個更好的方法來做到這一點。我只是認爲我不需要使用set intersection
,merge
和list comprehension
來實現這一點。
我會很感激任何想法,更優雅的方式來實現這一點。
這是完美的,不能相信我錯過了這一點。 – PagMax