我正在寻找一种优雅、Pythonic的方法来使Pandas DataFrame列保持一致。这意味着:
- 确保主列表中所有列均存在,如不存在,则添加一个空占位符列。
- 确保列与主列表中的顺序相同。
我有以下示例可以完成此目标,但是否有内置的Pandas方法可以完成相同的目标?
import pandas as pd
df1 = pd.DataFrame(data=[{'a':1,'b':32, 'c':32}])
print df1
a b c 0 1 32 32
column_master_list = ['b', 'c', 'e', 'd', 'a']
def get_dataframe_with_consistent_header(df, headers):
for col in headers:
if col not in df.columns:
df[col] = pd.np.NaN
return df[headers]
print get_dataframe_with_consistent_header(df1, column_master_list)
b c e d a 0 32 32 NaN NaN 1
df = df.reindex(columns=master_columns)
。 - Asclepius