Python 通过遍历字符串索引将它们转换为浮点数

Python 通过遍历字符串索引将它们转换为浮点数,python,pandas,Python,Pandas,我有一个csv文件: SID done good_ecg good_gsr good_resp comment 436 0 1 1 2411 1 1 1 3858 0 1 1 4517 0 1 1 117 min diff between files 9458 1 0 1 ######### err

我有一个csv文件:

 SID    done    good_ecg    good_gsr    good_resp   comment
    436     0   1   1   
    2411        1   1   1   
    3858        0   1   1   
    4517        0   1   1   117 min diff between files
    9458        1   0   1   ######### error in my script
    9754        0   1   1   trigger fehler

        #REF!               
        88.8888888889   
我将其加载到熊猫数据帧中,如下所示:

df = pandas.read_csv(f ,delimiter="\t", dtype="str", index_col='SID')
我想遍历索引并打印每个索引。但是当我尝试的时候

for subj in df.index:
   print subj
我明白了

436.0
2411.0
...
现在每个数字的末尾都有一个“.0”。我做错了什么

我还尝试过使用
iterrows()
进行迭代,但遇到了同样的问题

谢谢你的帮助

编辑:以下是我使用的全部代码:

import pandas
def write(): 
   df = pandas.read_csv("overview.csv" ,delimiter="\t", dtype="str", index_col='SID')

   for subj in df.index: 
            print subj


write()

啊。
dtype
参数不适用于
索引列

>>> !cat sindex.csv
a,b,c
123,50,R
234,51,R
>>> df = pd.read_csv("sindex.csv", dtype="str", index_col="a")
>>> df
      b  c
a         
123  50  R
234  51  R
>>> df.index
Int64Index([123, 234], dtype='int64', name='a')
相反,在没有索引列的情况下读入它(
None
实际上是默认值,因此您根本不需要
index\u col=None
,但这里我将明确说明),然后设置索引:

>>> df = pd.read_csv("sindex.csv", dtype="str", index_col=None)
>>> df = df.set_index("a")
>>> df
      b  c
a         
123  50  R
234  51  R
>>> df.index
Index(['123', '234'], dtype='object', name='a')

(我想不出在什么情况下df.index会有dtype对象,但当你对它进行迭代时,你会得到整数,但实际上你没有显示任何导致该问题的自包含代码。)

我似乎无法重现你的问题,你能将你的数据文件发布到网上吗?嘿@DSM,谢谢你的帮助。我编辑了我的问题以包含重现问题的代码,但我认为您更快了:-)