python - 如何在数据框中创建缺少的列并将其放置在正确的顺序
问题描述
这是我的代码:
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 文件中缺少“标题”列,如何以完全相同的顺序在 df 中创建它?
谢谢
解决方案
您可以像以前那样做所有事情,然后像这样添加缺少的列:
for col_name in holder:
if col_name not in df.columns:
df[col_name] = ''
然后,根据持有者列表对列重新排序:
df = df.reindex(columns=holder)
推荐阅读
- kotlin - What is the programming term for reducing hidden complexity associated with temporal/implicit coupling?
- javascript - Using react hooks and google maps api How to show one directions with waypoints and single different marker on same map?
- c - May an implementation optimize an atomic access to a non-atomic access, if it happens through a restrict pointer?
- javascript - I'm not able to install gatsby-plugin-transition-link with npm
- php - Attach PHP fputcsv as PHPMailer attachment
- php - imap_open authentication failure on localhost
- python - 如何在 Flask 应用程序中使用条件语句?
- simulation - 是否可以在 scilab Xcos 中创建压力传感器和其他仪器?
- angular - 递归 @SkipSelf 组件的根提供程序
- java - 为什么我的 Java 套接字客户端代码永远循环而不会抛出 IO 异常,即使另一端的服务器已经死了?