我想连接两个数据帧,从两个列表创建:追加2个DataFrames与例外排序列前两个
import pandas as pd
import numpy as np
header_1 = ['A', 'B', -1, 3, 5, 7]
data_1 = ['X', 'Y', 1, 2, 3, 4]
d = pd.DataFrame(np.array([data_1]), columns=header_1)
header_2 = ['A', 'B', -2, 4, 5, 6]
data_2 = ['X', 'Z', 1, 2, 3, 4]
e = pd.DataFrame(np.array([data_2]), columns=header_2)
f = pd.concat([d, e])
> f
A B -1 3 5 7 -2 4 6
0 X Y 1 2 3 4 NaN NaN NaN
0 X Z NaN NaN 3 NaN 1 2 4
不过,我想我的数值列出现在有序,是不知道是否有比分裂掉前两列,排序剩余的数据帧,并再次串联两个更简单的方法:
ab_cols = f[['A', 'B']] # Copy of first two columns
g = f.drop(['A', 'B'], axis=1) # Removing cols from dataframe
h = g.sort_index(axis=1) # Sort remaining by column header
i = pd.concat([ab_cols, h], axis=1) # Putting everything together again
> i
A B -2 -1 3 4 5 6 7
0 X Y NaN 1 2 NaN 3 NaN 4
0 X Z 1 NaN NaN 2 3 4 NaN
我想过多指标,但我已经在使用的东西指数其他(数据行的来源,这里没有显示),我是afra如果一个三级多索引可能会使它稍后更复杂一些。
谢谢!我不知道所有这些参数!这正是我所期待的。 – fukiburi
非常有趣的解决方案! – MaxU