【发布时间】:2021-11-26 14:03:33
【问题描述】:
这段代码sn-p运行良好:
df['art_kennz'] = df.apply(lambda x:myFunction(x.art_kennz), axis=1)
但是,我在这两个地方硬编码了列名art_kennz:df['art_kennz'] 和x.art_kennz。现在,我想修改脚本,以便我有一个列名列表,并为所有这些列运行 df.apply。所以我尝试了这个:
cols_with_spaces = ['art_kennz', 'fk_wg_sch']
for col_name in cols_with_spaces:
df[col_name] = df.apply(lambda x: myFunction(x.col_name)
, axis=1)
但这给出了一个错误:
AttributeError: 'Series' object has no attribute 'col_name'
因为x.col_name。这里, col_name 应该是来自 for 循环的元素。正确的语法是什么?
【问题讨论】:
-
如果 myFunction 可以与系列一起使用,您可以使用:df[list_of_cols] = df[list_of_cols].apply(lambda x: myFunction(x), axis=1)
标签: python pandas dataframe data-analysis attributeerror