Python 通过遍历字符串索引将它们转换为浮点数
我有一个csv文件: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
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,谢谢你的帮助。我编辑了我的问题以包含重现问题的代码,但我认为您更快了:-)