相关疑难解决方法(0)

使用f-strings修正十进制后的数字

Python f字符串(PEP 498)有一个简单的方法来修复小数点后的位数吗?(特别是f-strings,而不是其他字符串格式化选项,如.format或%)

例如,假设我想在小数位后面显示2位数.

我怎么做?

a = 10.1234

f'{a:.2}'
Out[2]: '1e+01'

f'{a:.4}'
Out[3]: '10.12'

a = 100.1234

f'{a:.4}'
Out[5]: '100.1'
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,"精度"已经改变了"小数点后的位数"的含义,就像使用%格式时的情况一样,只是总数.无论我有多大的数字,我怎么能总是得到小数点后的2位数?

python python-3.x f-string

218
推荐指数
7
解决办法
7万
查看次数

在Python中的小数点后面的浮点数中添加零

我正在读取文件中的数据,修改它并将其写入另一个文件.新文件将被另一个程序读取,因此继续执行确切的格式化至关重要

例如,我的输入文件中的一个数字是:

1.000000
Run Code Online (Sandbox Code Playgroud)

我的脚本将一些数学应用于列并应返回

2.000000
Run Code Online (Sandbox Code Playgroud)

但目前返回的是

2.0
Run Code Online (Sandbox Code Playgroud)

我怎么会写一个浮动例如my_float = 2.0,作为my_float = 2.00000一个文件?

python floating-point decimal

24
推荐指数
4
解决办法
5万
查看次数

如何将pandas数据框的数据类型更改为具有已定义格式的字符串?

我开始用这个撕掉我的头发 - 所以我希望有人可以帮忙.我有一个使用openpyxl从Excel电子表格创建的pandas DataFrame.生成的DataFrame看起来像:

print image_name_data
     id           image_name
0  1001  1001_mar2014_report
1  1002  1002_mar2014_report
2  1003  1003_mar2014_report

[3 rows x 2 columns]
Run Code Online (Sandbox Code Playgroud)

...具有以下数据类型:

print image_name_data.dtypes
id            float64
image_name     object
dtype: object
Run Code Online (Sandbox Code Playgroud)

问题是id列中的数字实际上是标识号,我需要将它们视为字符串.我尝试使用以下命令将id列转换为字符串:

image_name_data['id'] = image_name_data['id'].astype('str')
Run Code Online (Sandbox Code Playgroud)

这看起来有点难看但它确实产生了'object'类型的变量而不是'float64':

print image_name_data.dyptes
id            object
image_name    object
dtype: object
Run Code Online (Sandbox Code Playgroud)

但是,创建的字符串具有小数点,如下所示:

print image_name_data
       id           image_name
0  1001.0  1001_mar2014_report
1  1002.0  1002_mar2014_report
2  1003.0  1003_mar2014_report

[3 rows x 2 columns]
Run Code Online (Sandbox Code Playgroud)

如何将pandas DataFrame中的float64列转换为具有给定格式的字符串(在本例中为'%10.0f')?

python string format floating-point pandas

22
推荐指数
2
解决办法
12万
查看次数