【发布时间】:2022-11-08 00:41:55
【问题描述】:
我想根据另一个列的结果更正 df 列中的值。 第一行根据另一个名为“更正”的 df 为我提供了正确版本的 km。
df['km_correct'] = df['task_object'].map(correction.set_index('task_object')['km_correct'])
然后,仅当年份为 2022 年且联系人为“A”、“B”或“C”时,我才想将“km”的当前值替换为更正后的值。所以我使用了下面的公式,称为 correction_km:
def correction_km(row):
if '2022' in row["year"] and ("A" in row["Contacts"] or "B" in row["Contacts"] or "C" in row["Contacts"]):
return row['km_correct']
else:
return row['km']
但是,当我尝试将公式应用于列 km 上的 df 时:
df['km'] = df.apply(correction_km, axis=1)
我收到错误消息:
TypeError: argument of type 'float' is not iterable
任何人都可以帮忙吗?谢谢!
【问题讨论】:
-
您的 DataFrame 的 dtypes 是什么?