我查看了标准库和StackOverflow,但没有找到类似的问题.那么,有没有办法在不滚动自己的功能的情况下执行以下操作?如果有人在没有内置方式的情况下写出漂亮的功能,则可以获得奖励.
def stringPercentToFloat(stringPercent)
# ???
return floatPercent
p1 = "99%"
p2 = "99.5%"
print stringPercentToFloat(p1)
print stringPercentToFloat(p2)
>>>> 0.99
>>>> 0.995
Run Code Online (Sandbox Code Playgroud) 我有一个数据帧,需要根据以下逻辑将其专门转换为两位小数分辨率:
if x (以超过两位小数的值表示) > math.floor(x) + 0.5
if x(以两位以上小数位的值表示)< math.ceil(x) - 0.5
我遇到的主要问题是实际上看到这些新舍入/截断的值替换了数据框中的原始值。
示例数据框:
import math
import pandas as pd
test_df = pd.DataFrame({'weights': ['25.2524%', '25.7578%', '35.5012%', '13.5000%',
"50.8782%", "10.2830%", "5.5050%", "30.5555%", "20.7550%"]})
# .. which creates:
| weights |
|0 | 25.2524%|
|1 | 25.7578%|
|2 | 35.5012%|
|3 | 13.5000%|
|4 | 50.8782%|
|5 | 10.2830%|
|6 | 5.5050%|
|7 | 30.5555%|
|8 | 20.7550%|
Run Code Online (Sandbox Code Playgroud)
定义截断函数,以及配置小数分辨率的函数:
def truncate_decimals(target_allocation, two_decimal_places) -> float:
decimal_exponent = 10.0 …Run Code Online (Sandbox Code Playgroud) 我正在读取一个文件:
pd.read_csv("file.csv", dtype={'ID_1':float})
Run Code Online (Sandbox Code Playgroud)
该文件如下所示:
ID_0, ID_1,ID_2
a,002,c
b,004,d
c, ,e
n,003,g
Run Code Online (Sandbox Code Playgroud)
不幸的是read_csv,未能抱怨它无法将 ' ' 转换为浮点数。
读取 csv 并将无法转换为浮点数的任何内容转换为 NaN 的正确方法是什么?
python ×3
pandas ×2
converters ×1
csv ×1
floor ×1
nan ×1
python-2.7 ×1
python-3.x ×1
rounding ×1
string ×1
truncate ×1