我正试图用pandas将csv文件读取为DataFrame,并希望将索引行读取为string。但是,由于索引行没有任何字符,pandas将此数据作为整数处理。如何读取字符串?
这是我的csv文件和代码:
[sample.csv]
uid,f1,f2,f3
01,0.1,1,10
02,0.2,2,20
03,0.3,3,30
[code]
df = pd.read_csv('sample.csv', index_col="uid" dtype=float)
print df.index.values
结果:df.index是整数,而不是字符串:
>>> [1 2 3]
但我想得到df.index作为字符串:
>>> ['01', '02', '03']
还有一个附加条件:其余的索引数据必须是数值,它们实际上太多了,我不能用特定的列名指向它们。
传递
dtype
参数以指定数据类型:因此,在您的情况下,以下操作应该有效:
单行等效项不起作用,因为此处还有一个未完成的pandas bug,在将被视为索引的列上忽略dtype参数**:
如果假设第一列是索引列,则可以动态执行此操作:
在这里,我们只读取标题行以获取列名:
然后,我们使用所需的数据类型生成列名的dict:
我们得到索引名,假设它是第一个条目,然后从其余的col创建一个dict,并将
float
指定为所需的dtype,并添加指定类型为str
的index col,然后可以将其作为dtype
参数传递给read_csv
如果结果不是字符串,则必须将其转换为字符串。 尝试:
或者在这种情况下:
相关问题 更多 >
编程相关推荐