我正在嘗試合并字典中的資料幀
example_dict = {key1: df1, key2: df2, ....}
每個資料幀都有不同的行長,并且都有一列叫做 id
我的計劃是這樣做:
merged_dfs = partial(pd.merge, on='id', how='inner')
master_merged_dfs = reduce(merged_dfs, example_dict.values())
問題是有些資料幀的 id 很少,有些則有很多。如果我進行內部連接,問題是最終合并的 df 會越來越小。
我認為最好的方法可能是對字典中的所有資料框進行排序,然后根據排序是升序還是降序進行左或右連接。
我只是不知道我將如何訂購。
uj5u.com熱心網友回復:
您可以DataFrame通過它的shape獲得 a 的長度,您可以將其用作排序的鍵:
sorted_dict = dict(sorted(example_dict.items(), key=lambda x: x[1].shape[0]))
這DataFrame按長度升序對s的字典進行排序。如果您更喜歡按長度降序:
sorted_dict = dict(sorted(example_dict.items(), key=lambda x: x[1].shape[0], reverse=True))
uj5u.com熱心網友回復:
您可以使用python內置函式sorted和len作為關鍵函式來獲取按長度遞增排序的串列,然后進行正確的合并。
merged_dfs = partial(pd.merge, on='id', how='right')
master_merged_dfs = reduce(merged_dfs, sorted(example_dict.values(), key=len))
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/325895.html
