我正在尝试使用带有前导零的列导出数据框,如下所示:
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)
答案 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=str
或txt
文件的同时添加csv
:
df = pd.read_csv(r'C:\my_folder\my_file.csv', dtype=str)