如何将多个列合并为一个交错列?例如,如果我有数据:
Column 1 Column 2
0 A E
1 B F
2 C G
3 D H
我想要的形式是:
Column 1
0 A
1 E
2 B
3 F
4 C
5 G
6 D
7 H
有什么好的,矢量化的pythonic方法可以做到这一点?我可能会做某种df.apply()hack,但我打赌有更好的方法。该应用程序将多个维度的时间序列数据放入ML应用程序的单个流中。
答案 0 :(得分:6)
首先堆叠列,然后删除多索引:
df.stack().reset_index(drop=True)
Out:
0 A
1 E
2 B
3 F
4 C
5 G
6 D
7 H
dtype: object
答案 1 :(得分:3)
获取数据框:
pd.DataFrame(df.values.reshape(-1, 1), columns=['Column 1'])
对于回答OP问题的系列文章:
pd.Series(df.values.flatten(), name='Column 1')
对于一系列时序测试:
pd.Series(get_df(n).values.flatten(), name='Column 1')
<强>码强>
def get_df(n=1):
df = pd.DataFrame({'Column 2': {0: 'E', 1: 'F', 2: 'G', 3: 'H'},
'Column 1': {0: 'A', 1: 'B', 2: 'C', 3: 'D'}})
return pd.concat([df for _ in range(n)])
给定样本
鉴于样本* 10,000
鉴于样本* 1,000,000