我找不到简单的方法来做到这一点,而且所有复杂的方法都不起作用。你能帮忙吗?
我有一个来自网络抓取的数据框。在那里我有一个 data['Milage'] 列,其结果如下:“80,000 英里”。显然这是一个字符串,所以我正在寻找一种方法来删除所有非数字内容并将该字符串转换为直接数字 “80,000 英里”->“80000”
我尝试了以下方法:
data['Milage'] = data['Milage'].str[1:].astype(int)
不知道上面的代码是做什么的,我从这里的另一篇文章中获取了它。但我收到以下错误消息:
File "autotrader.py", line 73, in <module>
data['Milage'] = data['Milage'].str[1:].astype(int)
AttributeError: 'str' object has no attribute 'str'
我尝试的另一个解决方案是:
data['Milage'] = str(data['Milage']).extract('(\d+)').astype(int)
结果错误如下:
File "autotrader.py", line 73, in <module>
data['Milage'] = str(data['Milage']).extract('(\d+)').astype(int)
AttributeError: 'str' object has no attribute 'extract'
如果有任何帮助,我将不胜感激!谢谢
最佳答案
在一些测试问题是data
是字典之后,您需要为DataFrame
处理df
。
我认为您需要删除非数值并转换为整数:
df['Milage'] = df['Milage'].str.replace('\D','').astype(int)
print(df['Milage'])
0 70000
1 69186
2 46820
3 54000
4 83600
5 139000
6 62000
7 51910
8 86000
9 38000
10 65000
11 119000
12 49500
13 60000
14 35000
15 57187
16 45050
17 80000
18 84330
19 85853
Name: Milage, dtype: int32
关于python - 从文本中剥离 DataFrame 列以生成整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65182467/