2024-10-02 12:27:24 发布
网友
问题
我有一个email_alias列,我想使用Python在另一列中查找该列(每行)中的整数数。到目前为止,我只能计算整列中的数字总数。在
尝试
我试过了:df['count_numbers'] = sum(c.isdigit() for c in df['email_alias'])
df['count_numbers'] = sum(c.isdigit() for c in df['email_alias'])
示例:
email_alias count_numbers thisisatest111 3 testnumber2 1
您可以对列^{}自定义python函数。我不认为有矢量化的方法。sum()这里利用了bools are a subclass of ints这样所有True值都等于1。在
sum()
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)
你的方法是:
无法工作,因为df['count_numbers'] =是对该列中每个值的赋值。在这里,apply隐式地在行上迭代(但是在Python时间内,因此它没有被矢量化)。同样,Pandas的大多数.str访问器方法也是如此,尽管语法表明它比for循环快。在
df['count_numbers'] =
apply
.str
for
您可以对列^{} 自定义python函数。我不认为有矢量化的方法。
sum()
这里利用了bools are a subclass of ints这样所有True
值都等于1
。在你的方法是:
^{pr2}$无法工作,因为
df['count_numbers'] =
是对该列中每个值的赋值。在这里,apply
隐式地在行上迭代(但是在Python时间内,因此它没有被矢量化)。同样,Pandas的大多数.str
访问器方法也是如此,尽管语法表明它比for
循环快。在相关问题 更多 >
编程相关推荐