是否有可能只合並一些列?我有一個DataFrame df1列x,y,z和df2與列x,a,b,c,d,e,f等。Python的大熊貓只合並某些列
我想合併x上的兩個數據幀,但我只想要合併列df2.a,df2.b - 不是整個DataFrame。
其結果將是與X,Y,Z A數據幀,A,B。
我可以合併,然後刪除不需要的列,但似乎有一個更好的方法。
是否有可能只合並一些列?我有一個DataFrame df1列x,y,z和df2與列x,a,b,c,d,e,f等。Python的大熊貓只合並某些列
我想合併x上的兩個數據幀,但我只想要合併列df2.a,df2.b - 不是整個DataFrame。
其結果將是與X,Y,Z A數據幀,A,B。
我可以合併,然後刪除不需要的列,但似乎有一個更好的方法。
你可以合併子非數據幀(只有那些列):
df2[list('xab')] # df2 but only with columns x, a, and b
df1.merge(df2[list('xab')])
嗯,我不知道是否應該有dropna要做到這一點,像子集原生方式......將放在一起GitHub的問題 –
您可以使用.loc
選擇包含所有行的特定列,然後扳指。示例如下:
pandas.merge(dataframe1, dataframe2.iloc[:, [0:5]], how='left', on='key')
在此示例中,您正在合併dataframe1和dataframe2。您已選擇在'鍵'上進行外部左連接。但是,對於dataframe2,您指定了.iloc
,它允許您以數字格式指定所需的行和列。使用:
,選擇所有行,但[0:5]
選擇前5列。您可以使用.loc
來指定名稱,但是如果您處理長列名稱,則.iloc
可能會更好。
你想用兩個支架,所以如果你正在做一個VLOOKUP行動類別:
df = pd.merge(df,df2[['Key_Column','Target_Column']],on='Key_Column', how='left')
這會給你一切都在原來的DF +添加一個在DF2對應的列要加入。
這是從兩個表中合併選中的列。
如果TABLE_1包含t1_a,t1_b,t1_c..,id,..t1_z
列, 和TABLE_2包含t2_a,t2_b,t2_c...,id,..t2_z
列, 只有t1_a,ID,t2_a在最後的表是必需的,然後
mergedCSV = table_1[['t1_a','id']].merge(table_2[['t2_a','id']], on = 'id',how = 'left')
#save resulting output file
mergedCSV.to_csv('output.csv',index = False)
謝謝你 - 這是所有我想要的。 –
安迪:那頭很容易的聖牛......我需要休息一下,我很明顯這太複雜了。感謝您的澄清! – joelotz