熊猫删除领先的零

时间:2020-04-13 19:00:49

标签: python python-3.x pandas

我有一个简短的数据透视脚本。第一列是9位数字的ID号,通常以零开头,例如cd

这是脚本:

000123456

尽管正在使用df = pd.read_csv('source') new_df = df.pivot_table(index = 'id', columns = df.groupby('id').cumcount().add(1), values = ['prog_id', 'prog_type'], aggfunc='first').sort_index(axis=1,level=1) new_df.columns = [f'{x}_{y}' for x,y in new_df.columns] new_df.to_csv('destination') print(new_df) 之类的ID读取CSV,但是输出仅包含000123456

即使设置显式dtype,Pandas也会删除前导零。是否有办法告诉熊猫离开前导零?

2 个答案:

答案 0 :(得分:3)

对原始帖子的评论,将dtype设置为字符串:

df = pd.read_csv('source', dtype={'id':np.str})

答案 1 :(得分:2)

在读取csv文件zfill()之后,您可以立即使用pandas的"source"方法。基本上,您将在属性"id"的值中填充任意数量的零(在这种情况下),使数字长9位(3个零+ 6个原始数字)。因此,我们将拥有:

df = pd.read_csv('source')

df.index = df.index.str.zfill(9)

# (...)