列表追加到熊猫单元格中

Posted

技术标签:

【中文标题】列表追加到熊猫单元格中【英文标题】: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 函数来做到这一点

【问题讨论】:

【参考方案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'])

【讨论】:

以上是关于列表追加到熊猫单元格中的主要内容,如果未能解决你的问题,请参考以下文章

如何从excel单元格中读取列表

熊猫将非空值从行中获取到一个单元格中[重复]

将熊猫数据框单元格中的字典解析为新行单元格(新列)

根据“如果单元格中的字符串”条件删除熊猫列中的行

从熊猫数据框单元格中的凌乱字符串中删除换行符?

过滤单元格中有数组的熊猫数据框