考虑一个数据框,
A A B B
0 1 4 7 10
1 2 5 8 11
2 3 6 9 12
我想追加所有具有相同名称的列。 例如:
A B
0 1 7
1 2 8
2 3 9
0 4 10
1 5 11
2 6 12
答案 0 :(得分:0)
您可以在列中创建MultiIndex
,然后按stack
重新整形:
s = df.columns.to_series()
df.columns = [df.columns, s.groupby(s).cumcount()]
print (df)
A B
0 1 0 1
0 1 4 7 10
1 2 5 8 11
2 3 6 9 12
df = df.stack().sort_index(level=1).reset_index(drop=True)
print (df)
A B
0 1 7
1 2 8
2 3 9
3 4 10
4 5 11
5 6 12
答案 1 :(得分:0)
你可以
In [319]: pd.concat(x for _, x in df.groupby(df.columns.duplicated(), axis=1))
Out[319]:
A B
0 1 7
1 2 8
2 3 9
0 4 10
1 5 11
2 6 12