我正在try 这样的事情: List append in pandas cell

但问题是,这个帖子太老了,所有东西都被弃用了,不应该再使用了.

d = {'col1': ['TEST', 'TEST'], 'col2': [[1, 2], [1, 2]], 'col3': [35, 89]}
df = pd.DataFrame(data=d)
col1 col2 col3
TEST [1, 2, 3] 35
TEST [1, 2, 3] 89

我的数据帧看起来是这样的,因为Col2是我感兴趣的那个.我需要为DataFrame中的每一行将[0,0]添加到col2中的列表中.我真正的DataFrame是动态形状的,所以我不能只设置每个单元格.

最终结果应如下所示:

col1 col2 col3
TEST [1, 2, 3, 0, 0] 35
TEST [1, 2, 3, 0, 0] 89

我胡乱摆弄了df.applydf.assign,但我似乎不能让它工作. 我试过:

df['col2'] += [0, 0]

df = df.col2.apply(lambda x: x.append([0,0]))
     Which returns a Series that looks nothing like i need it

df = df.assign(new_column = lambda x: x + list([0, 0))

推荐答案

我不确定这是不是最好的办法,但是,方案2稍加修改就行了

import pandas as pd

d = {'col1': ['TEST', 'TEST'], 'col2': [[1, 2], [1, 2]], 'col3': [35, 89]}
df = pd.DataFrame(data=d)
df["col2"] = df["col2"].apply(lambda x: x + [0,0])
print(df)

首先,如果您想要将一个迭代器的所有成员添加到一个列表中,请使用.extend而不是.append.这不起作用,因为该方法就地工作,并且不返回任何内容,因此"col2"值变为None,因此请使用列表求和.最后,您希望将修改后的列分配给原始DataFrame,而不是覆盖它(这是Series返回的原因)

Python相关问答推荐

从收件箱中的列中删除html格式

如何根据参数推断对象的返回类型?

' osmnx.shortest_track '返回有效源 node 和目标 node 的'无'

Pandas计数符合某些条件的特定列的数量

根据列值添加时区

解决调用嵌入式函数的XSLT中表达式的语法移位/归约冲突

在pandas/python中计数嵌套类别

pysnmp—lextudio使用next()和getCmd()生成器导致TypeError:tuple对象不是迭代器''

递归函数修饰器

为用户输入的整数查找根/幂整数对的Python练习

Python—在嵌套列表中添加相同索引的元素,然后计算平均值

修改.pdb文件中的值并另存为新的

如果服务器设置为不侦听创建,则QWebSocket客户端不连接到QWebSocketServer;如果服务器稍后开始侦听,则不连接

在任何要保留的字段中添加引号的文件,就像在Pandas 中一样

如何在Pandas中用迭代器求一个序列的平均值?

是否需要依赖反转来确保呼叫方和被呼叫方之间的分离?

更新包含整数范围的列表中的第一个元素

Python:使用asyncio.StreamReader.readline()读取长行

如何定义一个将类型与接收该类型的参数的可调用进行映射的字典?

打印:添加具有不同填充 colored颜色 的矩形