我有一个Dataframe df,您可以通过运行以下命令获得它:
import pandas as pd
data = [10,20,30,40,50,60]
df = pd.DataFrame(data, columns=['Numbers'])
df
现在我想检查df的列是否在现有列表中,如果不在则新建一列并将列值设置为0,列名与列表值相同:
columns_list=["3","5","8","9","12"]
for i in columns_list:
if i not in df.columns.to_list():
df[i]=0
我怎么能在一行代码,我已经尝试了这个:
[df[i]=0 for i in columns_list if i not in df.columns.to_list()]
但是IDE返回:
SyntaxError: cannot assign to subscript here. Maybe you meant '==' instead of '='?
有朋友能帮忙吗?
3条答案
按热度按时间nukf8bse1#
尝试:
h7appiyu2#
您还可以使用字典解包运算符。
使用
df.assign
,您可以解压缩所创建的字典,其中包含不属于columns_list
的所有列,并为该列添加值0。如果您真的希望将其放在一行中,那么也可以移动
column_list
vd2z7a6w3#