gpt4 book ai didi

Python - 只提取第一个数字

转载 作者:行者123 更新时间:2023-12-01 14:35:32 24 4
gpt4 key购买 nike

我有一个包含对象 dtype 的列,其中数字、文本和符号都混合在一起。

例如:

0 200 lbs today (189 last year)

1 99 lbs

2 250 lbs with clothes on (247 without)

3 current weight is 330

我只需要提取数字,但我已经尝试了几个小时都没有成功。

我试过像这样使用 to_numeric:

raw['weight'] = pd.to_numeric(raw['weight'], errors='coerce', downcast='integer')

鉴于它是一个对象 dtype,会出现许多解析错误,但是当我使用 coerce 时,整个列变为 NaN`。

有什么想法吗?

预期的输出将显示所有第一个数字。我的示例的结果将是:200、99、250、300

最佳答案

你可以尝试这样的事情:

import re

raw['weight'] = raw.Weight.apply(lambda x: re.search('[-+]?[0-9]+', x).group(0))

这将获取字符串中找到的第一个数字。您将不得不修改以仅获得括号内、括号外等的那个。

[编辑]

如果 Weight 列中存在 NaN 值,则上述示例将失败。如果你不想删除 NaN 值,你可以用这样的方式处理它们:

import re

def get_num(val):
if not isinstance(val, str):
return val
else:
return re.search('[-+]?[0-9]+', val).group(0)

raw['weight'] = raw.Weight.apply(lambda x: get_num(x))

关于Python - 只提取第一个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59536130/

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