向pandas datafram的特定单元格添加元组

2024-06-16 12:28:35 发布

您现在位置:Python中文网/ 问答频道 /正文

正当我以为自己掌握了Python和熊猫的诀窍时,另一个看似简单的问题突然出现。我想向pandas数据帧的特定单元格添加元组。这些元组需要根据数据帧中其他单元格的内容进行动态计算-换句话说,我无法轻松地提前计算所有元组并将它们作为单个数组添加。在

例如,我用一些数据定义了一个dataframe,并添加了两个空列:

import pandas as pd
import bumpy as np
tempDF = pd.DataFrame({'miscdata': [1.2,3.2,4.1,2.3,3.3,2.5,4.3,2.5,2.2,4.2]})
tempDF['newValue'] = np.nan
tempDF['newTuple'] = np.nan

我可以滚动浏览“newValue”列的每个单元格,然后添加一个整数值而不会出现问题:

^{pr2}$

但是,如果我尝试添加元组,则会收到一条错误消息:

anyOldTuple = (2.3,4.5)
for i in range(10):
    tempDF.ix[(i,'newTuple')] = anyOldTuple

print tempDF

我收到了几条错误消息,包括:

ValueError: Must have equal len keys and value when setting with an ndarray

…还有

ValueError: setting an array element with a sequence.

我肯定我见过单元格中有元组(或列表)的数据帧,不是吗?任何建议如何使这一代码工作将不胜感激。在


Tags: 数据import消息pandasas错误npnan
2条回答

set_value已弃用。在

您可以使用.at[]或iat[]

例如some_df.at[ idx, col_name] = any_tuple

您可以使用set_value

tempDF.set_value(i,'newTuple', anyOldTuple)

还要确保列不是浮点列,例如:

^{pr2}$

否则你会得到一个错误。在

相关问题 更多 >