如果不可用,则添加列Pandas

我使用类似于以下代码的一长串代码来检查并创建一个值为“0”的列,

如果数据框 (df) 中不存在列,

if 'E184' not in df: df['E184'] = 0
if 'E185' not in df: df['E185'] = 0 
if 'E187' not in df: df['E187'] = 0 
if 'E186' not in df: df['E186'] = 0 
if 'E176' not in df: df['E176'] = 0 
if 'E177' not in df: df['E177'] = 0 
if 'E181' not in df: df['E181'] = 0 
if 'E210' not in df: df['E210'] = 0 
if 'E175' not in df: df['E175'] = 0 
if 'E209' not in df: df['E209'] = 0 
if 'E174' not in df: df['E174'] = 0 
if 'E212' not in df: df['E212'] = 0 
if 'E211' not in df: df['E211'] = 0 
if 'E154' not in df: df['E154'] = 0 
if 'E219' not in df: df['E219'] = 0 
if 'E230' not in df: df['E230'] = 0 
if 'E220' not in df: df['E220'] = 0 
if 'E157' not in df: df['E157'] = 0 
if 'E188' not in df: df['E188'] = 0 
if 'E234' not in df: df['E234'] = 0 

有没有简单有效的方法来做到这一点。

回答

你可以用pd.Index.uniondf.reindex

codes = ['E184', 'E185', 'E187', 'E186', 'E176', 'E177', 'E181', 'E210', 'E175',
         'E209', 'E174', 'E212', 'E211', 'E154', 'E219', 'E230', 'E220', 'E157',
         'E188','E234']

df.reindex(df.columns.union(codes, sort=False), fill_value=0, axis=1)


以上是如果不可用,则添加列Pandas的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>