[英]Python Pandas - Combining Multiple Columns into one Staggered Column
如何將多個列組合成一個交錯列? 例如,如果我有數據:
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應用程序的單個流中。
首先堆疊列,然后刪除多索引:
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
要獲取數據幀:
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.