[英]Extract numbers from a string in python
我试图从 pandas dataframe: 568 sq mi (1,471 km2) 的列中仅提取区域编号,我只想要 568 数字和 sq 之间的空间是牢不可破的空间。
你可能可以这样做
df[col].apply(lambda x:x[:3])
这将提取整列的起始编号,使用您的数据框名称更改 df 并使用您的列名称更改 col
所以尝试在字符串上使用正则表达式。
例如:
import re
str = "568.78 sq mi (1,471 km2)"
num = re.findall(r"[0-9]+", str)
print(num[0])
Output:
568.78
由于它在 dataframe 的列上,请尝试这样的操作。
def fmt(row):
number = re.findall(r"[0-9,.]+",row)
return number[0]
numbers = list(map(fmt,df[col]))
df['fmt area'] = numbers
认为这应该有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.