我有一个Pandas
dataframe
,叫做output
。基本问题是,我想使用ix
函数将dataframe
中的某一行、列设置为列表,并得到ValueError: setting an array element with a sequence.
我的理解是dataframe
元素就像列表元素,它可以保存任何东西(字符串、列表、元组等)。我说的不对吗?
基本设置:
import pandas as pd
output = pd.DataFrame(data = [[800.0]], columns=['Sold Count'], index=['Project1'])
print output.ix['Project1', 'Sold Count']
>>>800
工作正常
output.ix['Project1', 'Sold Count'] = 400.0
print output.ix['Project1', 'Sold Count']
>>>400.0
不起作用
output.ix['Project1', 'Sold Count'] = [400.0]
print output.ix['Project1', 'Sold Count']
>>>ValueError: setting an array element with a sequence.
如果确实要将列表设置为元素的值,则问题在于列的
dtype
,在创建数据帧时,dtype将被推断为float64
,因为它只包含数值。然后,当您尝试将列表设置为值时,由于
dtype
,它会出错。解决这个问题的一种方法是使用一个非数字的dtype(比如object
)等等。示例-演示-
您还可以在创建数据帧时指定
dtype
,例如-演示-
相关问题 更多 >
编程相关推荐