Dataframe将浮点转换为带所有小数的字符串

2024-04-26 06:02:43 发布

您现在位置:Python中文网/ 问答频道 /正文

通过使用pandas读取excel,尝试将浮点转换为包含所有小数点的字符串


df = pd.read_excel('data/DHTest.xlsx',  keep_default_na=False, na_filter=False, dtype=str)

在excel中输入-0.00001结果,并在拼花地板-1e-05中输出

--

如果我尝试在没有dtype=str的情况下运行


df = pd.read_excel('data/DHTest.xlsx',  keep_default_na=False, na_filter=False, dtype=str)

从-0.00001到-0.00001的结果,但通过转换为字符串df = df.astype('string')再次创建-1e-05

我需要用字符串df.to_parquet('data/DHTest.parquet')编写所有列的拼花地板,输出为-0.00001,而不是-1e-05


Tags: 字符串falsedefaultdfreaddatafilterxlsx
1条回答
网友
1楼 · 发布于 2024-04-26 06:02:43
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

相关问题 更多 >