我是熊猫的新手,仍在学习。 我正在尝试按标签顺序添加两个数字。一种方法是这样的:
function myFunction()
{
var x = document.getElementsByTagName("iframe")[0].getAttribute("src");
document.getElementById("demo").innerHTML = x;
}
输出:
<块引用>AttributeError: 'Series' 对象没有属性 'set_values'
现在经过研究,我发现它已被弃用,而改为使用 at()。 所以当我像这样使用它时:
numbers = pd.Series(np.random.randint(0,1000,10000))
for label, value in numbers.iteritems():
numbers.set_values(label, value+2)
numbers.head()
输出:
<块引用>TypeError: '_AtIndexer' 对象不可调用
所以当我像这样使用 at[] 时:
for label, value in numbers.iteritems():
numbers.at(label, value+2)
numbers.head()
我得到这个输出:
for label, value in numbers.iteritems():
numbers.at[label, value+2]
numbers.head()
我做错了什么,可以修复什么?
答案 0 :(得分:0)
at
用作对其参数给出的索引的访问器。当您将 label, value+2
传递给它时,它会将这个参数视为一个 2 元组,并在第一轮中查找字面上名为 (0, 10002)
的索引,但由于您的系列具有整数索引 0, 1, ...
, 不是元组。
因此您可以只将 label
留在 at
中并设置它返回到 value + 2
的内容:
numbers = pd.Series(np.random.randint(0,1000,10000))
for label, value in numbers.iteritems():
# lookup the value and set it
numbers.at[label] = value + 2
(注意这等价于 numbers += 2
)。