相关疑难解决方法(0)

将字符串百分比转换为浮点数的简洁方法是什么?

我查看了标准库和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)

python string python-2.7 python-3.x

23
推荐指数
3
解决办法
4万
查看次数

根据下限/上限条件,将 pandas 列值四舍五入或截断为小数点后 2 位

我有一个数据帧,需要根据以下逻辑将其专门转换为两位小数分辨率

  • 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)

python truncate rounding floor pandas

3
推荐指数
1
解决办法
2万
查看次数

如何将 read_csv 中的非数字条目转换为 NaN

我正在读取一个文件:

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 csv nan converters pandas

2
推荐指数
1
解决办法
832
查看次数

标签 统计

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