gpt4 book ai didi

python - 在 Pandas 中高效编辑字符串并转换为 float

转载 作者:行者123 更新时间:2023-11-28 21:41:27 25 4
gpt4 key购买 nike

我有一个大数据集(大约 1GB,例如,有一列薪资范围在字符串“20000-30000”中给出。我想删除连字符后的所有内容并转换为 float 。但这并不总是在那里,所以我还需要有一些条件来检查它是否在那里。

除了遍历整个列并单独转换每个列之外,是否有一种快速的 Pandas 方法可以做到这一点?我觉得必须有,因为这似乎是一个常见问题,但是类似的问题并没有解决大型数据集的问题。

示例输入为:

df = pd.DataFrame({'salary': ['200 - 300', '400', '400-500', '600', '-']})

df
Out:
salary
0 200 - 300
1 400
2 400-500
3 600
4 -

对于这些值,首选输出是:

   salary
0 200
1 400
2 400
3 600
4 0

0 实际上可以是任何填充值,我刚刚选择了 0

最佳答案

这是使用 apply

的一种方法
In [111]: df = pd.DataFrame({'salary': ['200 - 300', '400', '400-500', '600', '-']})

In [112]: df['salary'].apply(lambda x: x.split('-')[0].strip()).replace('', '0').astype(int)
Out[112]:
0 200
1 400
2 400
3 600
4 0
Name: salary, dtype: int32

另一种,使用regex 和字符串方法。

In [134]: df['salary'].str.extract('(\d+)', expand=True).fillna(0)
Out[134]:
0
0 200
1 400
2 400
3 600
4 0

关于python - 在 Pandas 中高效编辑字符串并转换为 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44765181/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com