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

我正在试图导出一个数据框与前导零像这样的列:

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中打开文件时,所有的前导零被切断任何数字。 我怎样才能保持零?

我试图转换为string,但它不工作:

 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) 

@EdChumbuild议这是一个优秀的问题。 你需要用="" apply('="{}".format)来包装你的列。 这将告诉excel将条目视为返回引号内文本的公式。 该文本将是你的值与前导零。

考虑下面的例子。

 df = pd.DataFrame(dict(A=['001', '002'])) df.A = df.A.apply('="{}"'.format) df.to_excel('test_leading_zeros.xlsx')