我需要更新一些列不一致的資料幀。考慮:
df1 = ['A', 'B', 'C']
df2 = ['A', 'B', 'C', 'E']
df3 = ['A', 'B', 'C', 'E', 'D']
required_columns = ['A', 'B', 'C', 'D', 'E']
在這里,我需要有 df1、df2、df3,這樣它也有列:['A'、'B'、'C'、'D'、'E']。此處,在 df1、D、E 中,如果 D 和 E 不存在,則列可以為 NA 或 null,而在 df2 的情況下,D 可以為 NA 或 null。df3 有所有這些列,但順序不匹配,所以它應該更新為 ['A', 'B', 'C', 'D', 'E']
uj5u.com熱心網友回復:
你的意思是:
df.reindex(['A','B','C','D','E'], axis=1)
傳遞fill_value=0如果你想充滿了新列0。
uj5u.com熱心網友回復:
將資料幀附加到主資料幀
df_main = df1.append(df2, ignore_index=True)
df_main = df_main.append(df3, ignore_index=True)
通常將缺失值設定為 NaN 或其他東西,所以這應該不是問題。只需使用df_main = df_main.fillna(0)
要添加到 Quang Hoang 的答案中,如果您有要排序的更改列串列,您還可以使用df.columns.sort_values():
new_cols = list(df.columns.sort_values().array)
df = df.reindex(new_cols, axis=1)
df1:
a b c e d
0 1.0 2.0 3.0 5.0 4.0
1 1.1 2.2 3.3 5.5 4.4
排序列:
a b c d e
0 1.0 2.0 3.0 4.0 5.0
1 1.1 2.2 3.3 4.4 5.5
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/349177.html
