Python 如何将某些列从一个数据帧组合到另一个数据帧?

Python 如何将某些列从一个数据帧组合到另一个数据帧?,python,pandas,dataframe,merge,data-science,Python,Pandas,Dataframe,Merge,Data Science,如何在某个位置将三列从一个数据帧添加到另一个数据帧? 我想在特定列之后添加这些列?DF1=['C','D']之后 DF2中的A列和B列。那么,如何在中的其他列之间连接列呢 另一个数据帧 df1=pd.read_csv(csvfile) df2=pd.read_csv(csvfile) df1['C','D','E'] to df2['K','L','A','B','F'] so it looks like df3= ['K','L','A','B','C','D','F'] 用于列的更改顺

如何在某个位置将三列从一个数据帧添加到另一个数据帧? 我想在特定列之后添加这些列?DF1=['C','D']之后 DF2中的A列和B列。那么,如何在中的其他列之间连接列呢 另一个数据帧

df1=pd.read_csv(csvfile)
df2=pd.read_csv(csvfile)

df1['C','D','E'] to df2['K','L','A','B','F']

so it looks like df3= ['K','L','A','B','C','D','F']
用于列的更改顺序:

df3 = pd.concat([df1, df2], axis=1).reindex(['K','L','A','B','C','D'], axis=1)

更一般的解决方案:

df1 = pd.DataFrame(columns=['H','G','C','D','E'])
df2 = pd.DataFrame(columns=['K','L','A','B','F'])
    
df3 = pd.concat([df1, df2], axis=1)
c = df3.columns.difference(['C', 'D'], sort=False)
pos = c.get_loc('B')  + 1
c = list(c)
#https://stackoverflow.com/a/3748092/2901002
c[pos:pos] = ['C', 'D']
df3 = df3.reindex(c, axis=1)
print (df3)
Empty DataFrame
Columns: [H, G, E, K, L, A, B, C, D, F]
Index: []
尝试:

最后:

df3=df3[['K','L','A','B','C','D']]

这应该行得通

pd.merge([df1, df2, left_index=True, right_index=True]).[['K','L','A','B','C','D']]
或者简单地使用deafult留下的join

df1.join(df2)[['K','L','A','B','C','D']]

如果出现值错误,在index@keenQuestions什么是重复列?需要通过它们进行合并,因此,相反地,
pd.concat([df1,df2],axis=1)
Need
pd.merge(df1,df2,on=['col1','col2'],how='left')
如果列重复,这意味着在两个数据帧中都是
col1,col2
pd.merge([df1, df2, left_index=True, right_index=True]).[['K','L','A','B','C','D']]
df1.join(df2)[['K','L','A','B','C','D']]