我有一个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
我在pandas数据框中加载它是这样的:
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()
答案 0 :(得分:1)
阿。 dtype
参数不适用于index_col
:
>>> !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')
相反,在没有index_col的情况下阅读它(None
实际上是默认设置,因此您根本不需要index_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对象的情况,但是当你迭代它时你会得到整数,但你实际上并没有显示任何自包含的代码产生了这个问题。)