Python 使列和顺序在数据帧中保持一致
我正在寻找一种优雅的、python式的方法,使数据帧列保持一致。意思是:Python 使列和顺序在数据帧中保持一致,python,pandas,dataframe,Python,Pandas,Dataframe,我正在寻找一种优雅的、python式的方法,使数据帧列保持一致。意思是: 确保主列表中的所有列都存在,如果没有,请添加一个空占位符列 确保列的顺序与主列表相同 我有下面的例子,但是否有一个内置的方法来实现相同的目标 import pandas as pd df1 = pd.DataFrame(data=[{'a':1,'b':32, 'c':32}]) print df1 b c e d a 0 32南南1 你可以使用这个方法。传入列名列表并指定'columns'。默认情况下,缺失条目的填充值
import pandas as pd
df1 = pd.DataFrame(data=[{'a':1,'b':32, 'c':32}])
print df1
b c e d a
0 32南南1
你可以使用这个方法。传入列名列表并指定'columns'
。默认情况下,缺失条目的填充值为NaN
:
>>> df1.reindex(column_master_list, axis='columns')
b c e d a
0 32 32 NaN NaN 1
尝试df=df.reindex(columns=master\u columns)
。
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
>>> df1.reindex(column_master_list, axis='columns')
b c e d a
0 32 32 NaN NaN 1