我正在寻找使Pandas DataFrame列保持一致的优雅的Pythonic方式。意义:
我有以下有效的示例,但是是否有内置的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
最佳答案
您可以使用 reindex
方法。传递列名列表,并指定'columns'
。默认情况下,缺少条目的填充值为NaN
:
>>> df1.reindex(column_master_list, axis='columns')
b c e d a
0 32 32 NaN NaN 1
关于python - 在Pandas DataFrame中使列和顺序保持一致,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26866633/