我正在运行循环,我遍历DataFrame并在每次迭代时将项附加到列表中。代码是这样的:
l=[]
for i,row in df.iterrows():
print len(l)
print i
l.append(df['A'])
获得i和len(l)不相等的情况,并且在后续运行中我可能会有所不同。
我的假设是我是一个整数,每次迭代递增1并从零开始,但这似乎是不正确的。
那么,为循环中的每次迭代定义i的值是什么?
答案 0 :(得分:1)
使用iterrows
对DataFrame进行迭代,为每行提供(index, Series)
对,如documentation中所述。但是,Pandas中的 index 并不总是意味着0。
Pandas DataFrame的每一行都有一个标签,也称为索引。这些标签通常是从0到DataFrame中行数的整数,但标签几乎可以是任何内容:
>>> x = pandas.DataFrame(index=[1, 'apples', object()], data={'x': [1, 2, 3]})
>>> x
x
1 1
apples 2
<object object at 0x7f25cdb16b50> 3
在这里,我有一个带有行标签1
,'apples'
和object
实例的DataFrame。这些是您将在iterrows
中看到的指数:
>>> [i for i, row in x.iterrows()]
[1, 'apples', <object object at 0x7f25cdb16b50>]
索引可能比使用MultiIndex
es的索引更复杂,但这应足以进行演示。
答案 1 :(得分:1)
根据评论部分,这只是索引。
谢谢。