我想連接兩個數據幀,從兩個列表創建:追加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