传递dtype参数以指定数据类型:In [159]:
import pandas as pd
import io
t="""uid,f1,f2,f3
01,0.1,1,10
02,0.2,2,20
03,0.3,3,30"""
df = pd.read_csv(io.StringIO(t), dtype={'uid':str})
df.set_index('uid', inplace=True)
df.index
Out[159]:
Index(['01', '02', '03'], dtype='object', name='uid')
因此,在您的情况下,以下操作应该有效:df = pd.read_csv('sample.csv', dtype={'uid':str})
df.set_index('uid', inplace=True)
单行等效项不起作用,因为此处还有一个未完成的pandas bug,在将被视为索引的列上忽略dtype参数**:df = pd.read_csv('sample.csv', dtype={'uid':str}, index_col='uid')
如果假设第一列是索引列,则可以动态执行此操作:In [171]:
t="""uid,f1,f2,f3
01,0.1,1