Python 当首先使用Dataframe.Combine或Dataframe.Combine\u时,是否可以保留列顺序?
如果您有2个数据帧,表示为:Python 当首先使用Dataframe.Combine或Dataframe.Combine\u时,是否可以保留列顺序?,python,pandas,dataframe,Python,Pandas,Dataframe,如果您有2个数据帧,表示为: A F Y 0 1 2 3 1 4 5 6 及 当组合时,它变成: A B C F T Y 0 1 7 8 2 9 3 1 4 10 11 5 12 6 我希望它成为: A F Y B C T 0 1 2 3 7 8 9 1 4 5
A F Y
0 1 2 3
1 4 5 6
及
当组合时,它变成:
A B C F T Y
0 1 7 8 2 9 3
1 4 10 11 5 12 6
我希望它成为:
A F Y B C T
0 1 2 3 7 8 9
1 4 5 6 10 11 12
如何将一个数据帧与另一个数据帧合并,但保持原始列顺序?
In [1294]: new_df = df.join(df1)
In [1295]: new_df
Out[1295]:
A F Y B C T
0 1 2 3 7 8 9
1 4 5 6 10 11 12
或者您也可以使用pd.merge
(虽然不是一个非常干净的解决方案)
pd.concat([df1,df2],axis=1)
?df1.join(df2)
?假设您想在索引上进行组合,您现在使用什么方法来组合它们?这是我需要的,而不是Dataframe.combine。非常感谢。另外,感谢@You_Chris在评论中提到了这一点,df.join(df2,how='outer')允许您在索引不同的情况下保留数据,这也可能毫无价值。在实际应用你的答案时,我必须这样做。
In [1294]: new_df = df.join(df1)
In [1295]: new_df
Out[1295]:
A F Y B C T
0 1 2 3 7 8 9
1 4 5 6 10 11 12
In [1297]: df['tmp' ] =1
In [1298]: df1['tmp'] = 1
In [1309]: pd.merge(df, df1, on=['tmp'], left_index=True, right_index=True).drop('tmp', 1)
Out[1309]:
A F Y B C T
0 1 2 3 7 8 9
1 4 5 6 10 11 12