计算dataframe列中的位数

2024-10-02 12:27:24 发布

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

问题

我有一个email_alias列,我想使用Python在另一列中查找该列(每行)中的整数数。到目前为止,我只能计算整列中的数字总数。在

尝试

我试过了:df['count_numbers'] = sum(c.isdigit() for c in df['email_alias'])

示例

email_alias       count_numbers
thisisatest111      3
testnumber2         1

Tags: in示例dfforemailcountalias数字
1条回答
网友
1楼 · 发布于 2024-10-02 12:27:24

您可以对列^{}自定义python函数。我不认为有矢量化的方法。sum()这里利用了bools are a subclass of ints这样所有True值都等于1。在

import pandas as pd

def count_digits(string):
    return sum(item.isdigit() for item in string)

df = pd.DataFrame({'a': ['thisisatest111', 'testnumber2']})
df['counts'] = df['a'].apply(count_digits)

你的方法是:

^{pr2}$

无法工作,因为df['count_numbers'] =是对该列中每个值的赋值。在这里,apply隐式地在行上迭代(但是在Python时间内,因此它没有被矢量化)。同样,Pandas的大多数.str访问器方法也是如此,尽管语法表明它比for循环快。在

相关问题 更多 >

    热门问题