📜  pandas 获取包含字符串的整数 - Python (1)

📅  最后修改于: 2023-12-03 15:18:15.423000             🧑  作者: Mango

Pandas获取包含字符串的整数 - Python

很多时候我们需要从一组字符串中提取包含的整数,例如从"abc578def"中提取整数578。在Python中,如果没有合适的工具,这将会是一个繁琐而且不好扩展的任务。不过好在Pandas提供了一个很方便的方法来解决这个问题。

用法

Pandas中的str.extract函数允许我们从一组字符串中提取匹配的子串,下面是一个例子,我们从字符串中提取包含的整数。

import pandas as pd

data = pd.DataFrame({'string': ['a1b2c3', 'abc', 'def5', 'hijk6lmn']})

data['number'] = data['string'].str.extract('(\d+)', expand=False).astype(float)

这个例子中,我们首先创建了一个包含四个字符串的DataFrame。然后我们使用str.extract函数提取每个字符串中匹配的第一个连续整数。这个正则表达式'(\d+)'为提取符合条件的子串而设计,其中\d代表数字,+代表一个或多个,()用来标记需要提取的内容。注意我们使用了参数expand=False,这使得提取出来的结果是一个Series对象,而不是一个DataFrame对象,方便我们后续的操作。

最后我们将提取出来的结果转换成了float类型,并将其保存到了新的一列number中。

总结

Pandas中的str.extract非常方便,也非常灵活,使用正则表达式可以提取出各种不同类型的子串,例如整数、浮点数、日期等等。这个函数还有很多其它的参数和用法,大家可以查看官方文档以了解更多信息。

代码片段

import pandas as pd

data = pd.DataFrame({'string': ['a1b2c3', 'abc', 'def5', 'hijk6lmn']})

data['number'] = data['string'].str.extract('(\d+)', expand=False).astype(float)