📜  从 Pandas 中的字符串中提取整数 (1)

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

从 Pandas 中的字符串中提取整数

在数据分析中,我们时常会遇到需要从字符串中提取出整数的情况。Pandas提供了一些方便的函数来完成这个任务。

下面介绍一些常用的方法:

1. str.extract()

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+),它表示匹配一个或多个数字。

2. str.isdigit()

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()函数把过滤后的字符串转换成整数。

3. str.split()

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]来获取第一个元素(即整数)。