1 回答

TA貢獻2065條經驗 獲得超14個贊
最好根據“ID”或“companyID”將多個數據幀合并為一個,然后執行過濾。您可以通過“companyID”合并它們,如下所示。
final_df = None
for key, value in dictionary.items():
value = value.set_index(['ID', 'companyID'])
# add an extra level of column where the level is the key from dict
value.columns = pd.MultiIndex.from_product([[key], value.columns])
if not type(final_df) == pd.DataFrame:
final_df = value
else:
final_df = final_df.merge(value, left_index=True, right_index=True, how='outer')
Out:
contact geography
Anrede Titel firstname surname randomID ContinentID
ID companyID
0 3025 2705.0 Mrs. Sam Smith NaN NaN
1 3026 2706.0 Mr. Michael Smith NaN NaN
3060 NaN NaN NaN NaN 0.0 1.0
2 3027 2710.0 Mr. Christian Peterson NaN NaN
6 3060 NaN NaN NaN NaN 2.0 1.0
7 2710 NaN NaN NaN NaN 0.0 1.0
24 7530 NaN NaN NaN NaN 0.0 6.0
28 3759 NaN NaN NaN NaN 0.0 6.0
s很少,NaN因為您在每個數據框中都沒有匹配的索引。我希望您的實際數據更加連貫。一旦你有了這個“合并”數據框,你就可以過濾你喜歡的任何列。
解釋
您有不同的列“集”,它們在字典中表示為單獨的鍵值對。我假設您想將這些數據幀與“ID”和“companyID”合并為某種索引。這就是上面的代碼所實現的。它還添加了一個額外的列索引級別來表示列集來自哪個“鍵”。
添加回答
舉報