簡體   English   中英

用多索引迭代連接熊貓數據框

[英]Iteratively concatenate pandas dataframe with multiindex

我正在迭代處理幾個“組”,我想將它們一起添加到一個數據幀中,每個組都由第二級索引標識。

這個:

print pd.concat([df1, df2, df3], keys=["A", "B", "C"])

是向我建議的-但在迭代中效果不佳。

我目前正在做

data_all = pd.DataFrame([])
    for a in a_list:
        group = some.function(a, etc)
        group = group.set_index(['CoI'], append=True, drop=True)
        group = group.reorder_levels(['CoI','oldindex'])
        data_all = pd.concat([data_all, group], ignore_index=False)

但是最后一行完全破壞了我的多索引,因此我無法重構它。

你能幫我個忙嗎?

應該可以只將data_all列表並在末尾連接一次:

data_all = []
for a in a_list:
    group = some.function(a, etc)
    group = group.set_index(['CoI'], append=True, drop=True)
    group = group.reorder_levels(['CoI','oldindex'])
    data_all.append(group)

data_all = pd.concat(data_all, ignore_index=False)

還請記住,pandas的concat可與迭代器一起使用。 諸如yield group類的東西可能比每次附加到列表都更有效。 我還沒有描述它!

暫無
暫無

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

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