Python 3.x 外部合并列序列不是固定的
我正在尝试使用pandas合并两个数据帧。 我正在做数据帧的外部合并。“我的数据框”有以下列:Python 3.x 外部合并列序列不是固定的,python-3.x,pandas,Python 3.x,Pandas,我正在尝试使用pandas合并两个数据帧。 我正在做数据帧的外部合并。“我的数据框”有以下列: DF1: (ID, X) DF2: (ID, Y, Z) 当我合并这些数据帧时,输出数据帧中的列顺序会发生变化 对于一些迭代,我得到 DF_OUTPUT: (ID, X, Y, Z) 或者有时是: DF_OUTPUT: (X, ID, Y, Z) 如何在输出数据框中保留列的顺序?合并后可以.reindex。使用将保留发生顺序的pd.unique,而不是使用排序的np.unique import
DF1: (ID, X)
DF2: (ID, Y, Z)
当我合并这些数据帧时,输出数据帧中的列顺序会发生变化
对于一些迭代,我得到
DF_OUTPUT: (ID, X, Y, Z)
或者有时是:
DF_OUTPUT: (X, ID, Y, Z)
如何在输出数据框中保留列的顺序?合并后可以
.reindex
。使用将保留发生顺序的pd.unique
,而不是使用排序的np.unique
import pandas as pd
cols = pd.unique(df1.columns.append(df2.columns))
df1.merge(df2, how='outer').reindex(cols, axis=1)
合并后,您可以
.reindex
。使用将保留发生顺序的pd.unique
,而不是使用排序的np.unique
import pandas as pd
cols = pd.unique(df1.columns.append(df2.columns))
df1.merge(df2, how='outer').reindex(cols, axis=1)
你确定DF1中的顺序总是
(ID,X)
,而不是(X,ID)
@ALollz吗?是的,我确定。但是您建议的解决方案奏效了您是否确定DF1
中的顺序始终是(ID,X)
,而不是(X,ID)
@ALollz是的,我确信这一点。但你建议的解决方案奏效了