我试图使用现有的pandas列作为一组索引来设置一个新的pandas列,以分隔列表,但不断出现以下错误:
TypeError: list indices must be integers or slices, not Series
参见下面的代码:
import pandas as pd
monthvalues=[1,4,9,16,25,36,49,64,81,100,121,144]
df=pd.DataFrame([1,4,7,9], columns=['month'])
df['value']=monthvalues[df['month']-1]
预期结果
"month" "value"
0 1 1
1 4 16
2 7 49
3 9 81
请注意,这只是一个例子,实际上我并没有试图将月份数字平方。你知道吗
这是因为
df['month']
返回的是一个Pandas系列,而不是我猜想您所期望的列表(尽管如果它是一个列表,它仍然不起作用)。你知道吗我不确定是否有更整洁的方法,但试试这个:
如果从列表构造
Series
,则可以使用iloc
将其作为查找传递,重要的是,可以将Series
转换为numpy数组,以便它正确对齐:相关问题 更多 >
编程相关推荐