我有一个简短的脚本可以对数据进行透视。第一列是9位数字ID号码,通常以零开头,例如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)
尽管CSV文件中的ID是
000123456
,但输出结果只包含123456
。即使设置了明确的数据类型(dtype),Pandas仍会删除前导零。是否有解决方法告诉Pandas保留前导零?
read_csv
函数仍然需要使用dtype
参数来指定列类型。 - gold_cydtype={'id':np.int32}
,它仍然会删除前导零。 - Haydenstr
类型。 - Alex