I am trying to export a dataframe with a column with leading zeros like this:
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
But when I export to csv, all of the leading zeros are cut off any numbers when I open the file in Excel. How can I keep the zeros?
I have tried to convert to string but it doesn't work:
df["CD_LIN_NEG"] = df['T_PROD_CP.LN'].astype(str).apply(lambda x: x.zfill(3))
or in this way:
df["CD_LIN_NEG"] = '00' + df['T_PROD_CP.LN'].astype(str)
The most simple solution is to just add
dtype=str
while readingtxt
orcsv
file in Pandas:This is an excel problem as @EdChum suggested. You'll want to wrap your column in
=""
withapply('="{}".format)
. This will tell excel to treat the entry as a formula that returns the text within quotes. That text will be your values with leading zeros.Consider the following example.
This may not be directly relevant to the question but if the data is read from external sources via
pandas.read_csv()
orpandas.read_excel()
, then we could specifyconverters
for relevant columns usingstr
.For example,
When the data is saved to Excel or CSV files, the leading 0's are maintained.