📅  最后修改于: 2023-12-03 15:36:14.638000             🧑  作者: Mango
在数据分析中,我们时常会遇到需要从字符串中提取出整数的情况。Pandas提供了一些方便的函数来完成这个任务。
下面介绍一些常用的方法:
str.extract()
函数可以根据正则表达式提取字符串中的整数,它的语法为:
dataframe['column_name'].str.extract(r'regex')
其中column_name
为需要提取整数的列名,regex
为正则表达式。
示例代码:
import pandas as pd
df = pd.DataFrame({'A': ['1a', '2b', '3c', '4d']})
df['Num'] = df['A'].str.extract(r'(\d+)').astype('int')
print(df)
输出结果:
A Num
0 1a 1
1 2b 2
2 3c 3
3 4d 4
在上面的示例中,我们使用了正则表达式(\d+)
,它表示匹配一个或多个数字。
str.isdigit()
函数返回一个布尔值,表示字符串是否只包含数字字符。如果是,则返回True
,否则返回False
。
示例代码:
import pandas as pd
df = pd.DataFrame({'A': ['1a', '2b', '3c', '4d']})
df['Num'] = df['A'].apply(lambda x: int(''.join(filter(str.isdigit, x))))
print(df)
输出结果:
A Num
0 1a 1
1 2b 2
2 3c 3
3 4d 4
在上面的示例中,我们使用了filter()
函数和lambda
表达式来过滤字符串中的数字字符,然后使用int()
函数把过滤后的字符串转换成整数。
str.split()
函数可以按照指定的分隔符把字符串分割成一个列表,我们可以通过下标来获取列表中的整数。
示例代码:
import pandas as pd
df = pd.DataFrame({'A': ['1,a', '2,b', '3,c', '4,d']})
df['Num'] = df['A'].apply(lambda x: int(x.split(',')[0]))
print(df)
输出结果:
A Num
0 1,a 1
1 2,b 2
2 3,c 3
3 4,d 4
在上面的示例中,我们使用了,
作为分隔符,然后使用[0]
来获取第一个元素(即整数)。