Reputation: 548
by reading excel with pandas trying to convert floats to string with all decimal points
df = pd.read_excel('data/DHTest.xlsx', keep_default_na=False, na_filter=False, dtype=str)
input in excel -0.00001 results to output in parquet -1e-05
--
if I try to run without dtype=str
df = pd.read_excel('data/DHTest.xlsx', keep_default_na=False, na_filter=False, dtype=str)
results from -0.00001 to -0.00001 but by converting to string df = df.astype('string')
creates again -1e-05
I need to write parquet with all columns as string df.to_parquet('data/DHTest.parquet')
with output -0.00001 and not -1e-05
Upvotes: 2
Views: 2136
Reputation: 1841
import pandas as pd
#Dummy Data
l = [0.0000001,0.00000002]
df = pd.DataFrame(l, columns=["data"])
-->
data
0 1.000000e-07
1 2.000000e-08
#Transform (fixed number of zeros)
df["data"] = df["data"].map('{:,.8f}'.format)
-->
data
0 0.00000010
1 0.00000002
#Transform (max number of zeros, but remove trailing)
df["data"] = df["data"].apply(lambda x: ('{:,.8f}'.format(x)).rstrip("0"))
-->
data
0 0.0000001
1 0.00000002
Upvotes: 2