Python:如何将来自不同数据帧的同名列彼此相邻放置?
我想知道在Python中是否有一种方法可以将来自不同数据帧的列以相同的名称(或相关的名称)彼此相邻放置 我知道可以选择使用Python:如何将来自不同数据帧的同名列彼此相邻放置?,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,我想知道在Python中是否有一种方法可以将来自不同数据帧的列以相同的名称(或相关的名称)彼此相邻放置 我知道可以选择使用JOIN,但我想从头开始创建一个函数,实现同样的功能 示例: 让我们假设两个数据帧df1和df2 df1 id A B 50 1 5 60 2 6 70 3 7 80 4 8 id A_1 B_1 50 a b 60 c d 70 e f 80 g h df2 id A B 50 1 5 60 2 6 70 3
JOIN
,但我想从头开始创建一个函数,实现同样的功能
示例:
让我们假设两个数据帧df1
和df2
df1
id A B
50 1 5
60 2 6
70 3 7
80 4 8
id A_1 B_1
50 a b
60 c d
70 e f
80 g h
df2
id A B
50 1 5
60 2 6
70 3 7
80 4 8
id A_1 B_1
50 a b
60 c d
70 e f
80 g h
预期输出:一个新的数据帧,比如说df3
,如下所示
id A A_1 B B_1
50 1 a 5 b
60 2 c 6 d
70 3 e 7 f
80 4 g 8 h
首先,加入两个数据帧-
df3 = df1.join(df2, how='inner')
然后你可以对索引进行排序-
df3 = df3.sort_index(axis=1)
您可以将sorted()
与下列列名一起使用:
m=pd.concat([df1.set_index('id'),df2.set_index('id')],axis=1)
m[(sorted(m.columns))].reset_index()
id A A_1 B B_1
0 50 1 a 5 b
1 60 2 c 6 d
2 70 3 e 7 f
3 80 4 g 8 h
嘿,莫茨。谢谢你的回复。我知道可以使用连接,但我想知道是否可以从头创建一个函数来实现同样的功能。从零开始谢谢你?你能澄清一下吗?你是说根本不用熊猫图书馆吗?也许,你可以看看pandas的代码库,了解这些功能是如何实现的。是的,我也在考虑同样的问题。谢谢@Mortz,当我尝试你的方法时,我得到了以下错误
TypeError:'