【问题标题】:Python: apply lambda to each element of a list in a rowPython:将lambda应用于一行中列表的每个元素
【发布时间】:2021-07-03 01:51:31
【问题描述】:

如何将 lambda 应用于连续列表的 echa 元素?

我有一列,每行包含 2 个元素。

那些元素是字符串,我想把它们变成整数。

现在:['111', '222'] 然后:[111, 222]

如何遍历列表中的每一个元素?

df.column.apply(lambda x: int(x) for x in...

我被困在这里不知道如何迭代,因为我已经告诉 lambda 与 x 一起工作,其中 x 是某个单元格。

提前谢谢你。

附上数据示例截图。enter image description here 问题出在“坐标”列上。

【问题讨论】:

  • pandas?请显示您的数据结构示例...?
  • @deceze 是的。我不知道我是否正确处理了示例(将其作为问题的屏幕截图附上)

标签: python pandas list lambda


【解决方案1】:

已解决: 我不知道为什么,但这有效:

df.column.apply(lambda x: (float(x[0]), float(x[1])) if pd.isna([x]).any() == False else x)

【讨论】:

    【解决方案2】:

    您是否尝试过索引到列表中?

    df.column.apply(lambda x: [int(x[0]), int(x[1])] for x in...

    编辑:

    由于您的列有时包含无,请尝试以下操作:

    df.column.apply(lambda x: x if pd.isnull(x) else [int(x[0]), int(x[1])]

    这假定问题值为 None 而不是 ['111', None] 之类的东西

    【讨论】:

    • 返回 'NoneType' 对象不可下标。如何从迭代中排除无?如果 x.isna() == False 不起作用..
    猜你喜欢
    • 1970-01-01
    • 2010-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-24
    • 1970-01-01
    相关资源
    最近更新 更多