【问题标题】:List append in pandas cell列表追加到熊猫单元格中
【发布时间】:2018-04-30 15:10:50
【问题描述】:

我有一个数据框,其中包含列中的列表项。

示例: df:

column1, column2, column3
1         'c'       ['d']
2         'x'       []
3         'foo'     ['car']

所以我想将另一个项目附加到 column3

结果应该是这样的

column1, column2, column3
1         'c'       ['d','t']
2         'x'       ['t']
3         'foo'     ['car','t']

目前我使用这样的方法

df['column3']=df['column3'].apply(lambda x: x.append('t'))

但是 column3 变成了

column1, column2, column3
1         'c'       none
2         'x'       none
3         'foo'     none

想知道如何使用 apply 函数来做到这一点

【问题讨论】:

    标签: python list pandas types append


    【解决方案1】:

    只需使用:

    df['column3'] += ['t']
    

    而不是apply。问题是.append 工作就地 并返回None

    如果你真的想使用.apply + lambda,你当然可以做一些傻事:

    df.column3.apply(lambda x: x.append('t') or x)
    

    【讨论】:

    • 你赢了 15 秒,很好的解决方案 :-)
    • 遗憾的是,这不适用于 Pandas 1.x:TypeError:只能将列表(不是“str”)连接到列表或 TypeError:无法使用 如果你给 [['t']].
    【解决方案2】:

    下面是使用apply() 的方法。使用+ 而不是append()

    df.column3 = df.column3.apply(lambda x: x+['t'])
    

    【讨论】:

      猜你喜欢
      • 2020-09-26
      • 1970-01-01
      • 2022-01-12
      • 1970-01-01
      • 2018-01-24
      • 1970-01-01
      • 2015-01-02
      • 2018-05-16
      • 2016-09-13
      相关资源
      最近更新 更多