gpt4 book ai didi

python - 清理 Pandas 中的数字列

转载 作者:行者123 更新时间:2023-12-05 05:48:12 24 4
gpt4 key购买 nike

我在利用 pandas 中的 csv 抓取文件时遇到了一些困难。我有几列,其中一列包含价格为“1 800 €”

将 csv 导入为数据框后,我无法在 Integrer 中转换我的列

我毫无问题地删除了欧元符号

data['prix']= data['prix'].str.strip('€')

我尝试用同样的方法删除空间,但空间仍然存在

data['prix']= data['prix'].str.strip()
or
data['prix']= data['prix'].str.strip(' ')
or
data['prix']= data['prix'].str.replace(' ', '')

我试图在 Int 中强制转换

data['prix']= pd.to_numeric(data['prix'], errors='coerce')

我的专栏由 Nan 值填充

我尝试在字符串中的替换空格操作之前进行转换

data = data.convert_dtypes(convert_string=True)

但结果相同:无法实现我的目标空格始终存在,我无法转换为整数

我用 Excel 查看数据集,我无法识别数据中的特殊问题

我还尝试更改 read_csv 中的编码标准 ... 同上

在同一个数据集中,我遇到了与 15 256 公里相同的公里数问题而且我没有问题撤退并转换为 int ...

我想通过 REGEX 测试只复制字段的数字并创建新列

如何进行?我也对其他想法感兴趣

谢谢

最佳答案

使用str.findall:

I would like to test through REGEX to copy only numbers of the field et create new column with

data['prix2'] = data['prix'].str.findall(r'\d+').str.join('').astype(int)

# Or if it raises an exception

data['prix2'] = pd.to_numeric(data['prix'].str.findall('(\d+)').str.join(''), errors='coerce')

关于python - 清理 Pandas 中的数字列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70861660/

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