簡體   English   中英

如何連接具有不同長度(和 samo 列)的數據幀?

[英]How to concatenate dataframes with different lengths (and samo columns)?

我正在嘗試將多個 pandas 數據幀相互堆疊。 它們有不同的長度,但都有 7 列。 我想將它們粘貼在彼此下方(在axis = 0上連接)。 所以結果應該是各個長度的總和乘以 7. (x, 7)。

要連接,我使用:

import pandas as pd
import numpy as np

df_1 = pd.DataFrame(np.random.randint(0,100,size=(100, 7))
df_2 = pd.DataFrame(np.random.randint(0,100,size=(150, 7))
df_3 = pd.DataFrame(np.random.randint(0,100,size=(90, 7))
df_4 = pd.DataFrame(np.random.randint(0,100,size=(1001, 7))
df_5 = pd.DataFrame(np.random.randint(0,100,size=(1050, 7))
df_6 = pd.DataFrame(np.random.randint(0,100,size=(780, 7))
df_7 = pd.DataFrame(np.random.randint(0,100,size=(80, 7))

series = [df_1, df_2, df_3, df_4, df_5, df_6, df_7]

total = pd.concat(series, axis=0)

print(total.shape)

結果是 (3251, 15),但期望的結果是 (3251, 7)。

我應該怎么做才能到達那里?

請注意,我沒有具體標識 Dataframe 中的索引或列。 也許解決方案就在那里,但我不確定如何使用這些屬性。

運行您的代碼,它工作正常:

import pandas as pd
import numpy as np

df_1 = pd.DataFrame(np.random.randint(0,100,size=(100, 7)))
df_2 = pd.DataFrame(np.random.randint(0,100,size=(150, 7)))
df_3 = pd.DataFrame(np.random.randint(0,100,size=(90, 7)))
df_4 = pd.DataFrame(np.random.randint(0,100,size=(1001, 7)))
df_5 = pd.DataFrame(np.random.randint(0,100,size=(1050, 7)))
df_6 = pd.DataFrame(np.random.randint(0,100,size=(780, 7)))
df_7 = pd.DataFrame(np.random.randint(0,100,size=(80, 7)))

series = [df_1, df_2, df_3, df_4, df_5, df_6, df_7]

total = pd.concat(series, axis=0)

print(total)

     0   1   2   3   4   5   6
0   38  73   6  64  54  20  52
1   41  28   9  14  40  24  17
2   31  53   5  84  53   4  81
3   65   2  87  38  53  62  58
4   57  34   9  50  56  22  81
..  ..  ..  ..  ..  ..  ..  ..
75   1  63  71  71  76   3  95
76  87  47  33  43  79  99  73
77  12  58  11  93   5  35  18
78  16  41  44  15  79  74  73
79  76  54  34  83  35  22  50

[3251 rows x 7 columns]

我運行了它提供所需 output 的代碼。 截圖放在這里:

代碼的輸出

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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