首页 > 解决方案 > 如何在数据框中创建缺少的列并将其放置在正确的顺序

问题描述

这是我的代码:

holder=['user_ID','name','title','user_access','user_environment','address_flag','address1_line1',
        'address1_line2','address1_line3','address1_line4','address1_line5','address2_line1','address2_line2','address2_line3','address2_line4']

df= pd.read_csv('users.csv', sep=',',usecols=lambda x:x in holder)

在这里,我将我的 csv 文件列与持有人列表匹配,如何从我的 df 中的 csv 文件创建缺失的列,但以正确的顺序作为我的持有人列表?

输出文件如下所示:|S00045792|||SIRSI|SIRSI||.STREET.Block 3 Street 1|.CITY/STATE.Mishref||.EMAIL.s00045792@test.com|||||||||| |||阿拉伯|||主要|退房|员工||||1234||||||||||||Fatema||Al-Mutawa|||||||||||| ||||||||

输入文件:

.csv 文件

因此,如果我的 csv 文件中缺少“标题”列,如何以完全相同的顺序在 df 中创建它?

谢谢

标签: pythonpandasdataframe

解决方案


您可以像以前那样做所有事情,然后像这样添加缺少的列:

for col_name in holder:
    if col_name not in df.columns:
        df[col_name] = ''

然后,根据持有者列表对列重新排序:

df = df.reindex(columns=holder)

推荐阅读