2015-09-30 87 views
2

我想知道如何使用iterrows遍历数据框时使用索引而不是名称访问列。如何在使用iterrows时通过索引访问列()

这段代码是最让我能找到的:

for index, row in df.iterrows(): 
    print row['Date'] 

这是另一种方法,我把穿越,但它似乎很慢:

for i in df.index: 
    for j in range(len(df.columns)):  
        df.ix[i,j] = 0 
+0

如果你想你的字符串转换为数字只是叫'DF = df.convert_objects(convert_numeric = TRUE)' – EdChum

+0

我想基于一些做条件 – Xoul

回答

0

我想通了。迭代的i to number of columns和使用i作为索引访问列:

for i in range(len(df.columns)): 
    for index, row in df.iterrows():  
     print row.ix[i] 
3

您可以通过索引使用ix访问:

In [67]: df 
Out[67]: 
     A B 
0 test1 1 
1 test2 4 
2 test3 1 
3 test4 2 

In [68]: df.ix[:,1] 
Out[68]: 
0 1 
1 4 
2 1 
3 2 
Name: B, dtype: int64 

用第一列更新您的代码:

for index, row in df.iterrows(): 
    row.ix[0] 
+0

我尝试过,但它花费的时间太多,我使用的数据集超过45000行 – Xoul

+0

你想达到什么目的?通过解释你的问题而不是技术问题,我们可能会帮助更好! –

+0

我有一个数据集有多个列,字符串和整数 我想映射所有字符串为整数,所以我想遍历行和列,并用整数值替换所有字符串 我这样做的方式是 例如有一个'婚姻状况'专栏,其领域可以有'单身,已婚,离婚'的身份,所以如果一个字段包含单身,我会将其映射到0 – Xoul