簡體   English   中英

串聯高效連接熊貓數據框

[英]Efficiently Concatenate Pandas DataFrames in series

我有10個數據框,它們的行數相等,每個數據框都有自己的唯一列集(在任何數據框之間不共享)。 我想簡單地將數據幀串聯在一起,以便最終的數據幀包含所有數據幀中包含的所有列。 最終數據幀的第一行將包含第一個數據的第一行,然后是第二個數據的第一行,依此類推,直到第十個數據幀。 我已經嘗試過pandas.concat(dataframes,axis = 1),但是最終以某種方式在我的數值數據中創建了NaN值。 我通過編寫一個極其緩慢且丑陋的方法來解決此問題,該方法按索引逐行遞增,並在最終數據幀中逐行創建。 正確的熊貓方法是什么?

假設所有數據幀都在列表df_list

df0_index = df_list[0].index # get the first data frame's index

for i in range(1, len(df_list)):
    df_list[i] = df_list[i].set_index(df0_index) # reindex all the other dataframes

df_out = pd.concat(df_list, axis=1) # concatenate 

得到它的工作。 只需在調用pandas.concat()時將“ ignore_index”設置為true。

pd.concat(df_list, axis=1, ignore_index=True) # returns dataframes correctly.

請注意,由於某種原因,重新編制索引將無效。

您可以通過列表理解來做到這一點:

pd.concat([df.reset_index(drop=True) for df in df_list], axis = 1)

暫無
暫無

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

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