【问题标题】:TypeError: argument of type 'float' is not iterable (Python)TypeError:类型 \'float\' 的参数不可迭代(Python)
【发布时间】: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 是什么?

标签: python dataframe


【解决方案1】:

您是否在整个数据集上应用correction_km

df['km'] = df.apply(correction_km, axis=1)

或者你只需​​要将它应用到 km 系列中

df['km'] = df['km'].apply(correction_km, axis=1)

抱歉,我之前也遇到过此类错误。我现在没有数据集,所以我假设这可能是导致错误的原因。

【讨论】:

    猜你喜欢
    • 2020-05-07
    • 1970-01-01
    • 2017-01-31
    • 2019-01-30
    • 1970-01-01
    • 2012-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多