当我导出为CSV时,如何在列中保留前导零?

时间:2016-12-20 10:49:43

标签: python excel csv pandas

我正在尝试使用带有前导零的列导出数据框,如下所示:

df["CD_LIN_NEG"]

0     001
1     001
2     004
3     001
4     001
5     001
6     003
7     006
Name: CD_LIN_NEG, dtype: object

但是当我导出到csv时,当我在Excel中打开文件时,所有前导零都会被截断。我怎样才能保留零?

我试图转换为字符串,但它不起作用:

df["CD_LIN_NEG"] = df['T_PROD_CP.LN'].astype(str).apply(lambda x: x.zfill(3))

或以这种方式:

df["CD_LIN_NEG"] = '00' + df['T_PROD_CP.LN'].astype(str)

3 个答案:

答案 0 :(得分:6)

这是@EdChum建议的一个优秀问题。您需要使用df = pd.DataFrame(dict(A=['001', '002'])) df.A = df.A.apply('="{}"'.format) df.to_excel('test_leading_zeros.xlsx') 将专栏封装在{{1}}中。这将告诉excel将条目视为返回引号内文本的公式。该文本将是带有前导零的值。

请考虑以下示例。

{{1}}

答案 1 :(得分:0)

这可能与问题不直接相关,但是如果通过output = np.zeros((4,5)) for i, ix in enumerate(a): output[i][ix] = 1 # output -> # array([[0, 1, 1, 0, 1], # [1, 0, 1, 1, 0], # [0, 1, 0, 1, 1], # [1, 0, 1, 0, 0]]) pandas.read_csv()从外部来源读取数据,则可以使用{{1 }}。

例如,

pandas.read_excel()

将数据保存到Excel或CSV文件时,将保留前导0。

答案 2 :(得分:0)

最简单的解决方案是在熊猫中读取dtype=strtxt文件的同时添加csv

df = pd.read_csv(r'C:\my_folder\my_file.csv', dtype=str)