簡體   English   中英

Python Pandas - 將多個列組合成一個交錯列

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM