从Pandas中的字符串提取int

2024-10-04 03:25:01 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有一个数据帧df作为

A B
1 V2
3 W42
1 S03
2 T02
3 U71

我希望有一个新列(或者在它的df结尾处,或者用它替换列B,这无关紧要),它只从列B中提取int。我希望列C看起来像

C
2
42
3
2
71

所以如果数字前面有一个0,比如03,那么我想返回3而不是03

我该怎么做?


Tags: 数据df数字v2int结尾处s03t02
3条回答

可以转换为字符串并使用正则表达式提取整数。

df['B'].str.extract('(\d+)').astype(int)

为此,我编写了一个小循环,因为我的字符串不在数据帧中,而是在列表中。这样,您还可以添加一些if语句来说明浮动:

output= ''
input = 'whatever.007'  

for letter in input :
        try :
            int(letter)
            output += letter

        except ValueError :
                pass

        if letter == '.' :
            output += letter

输出=浮点(输出)

或者你可以输入(输出)如果你喜欢。

假设总是有一个前导字母

df['B'] = df['B'].str[1:].astype(int)

相关问题 更多 >