python - python - 使用Pandas中的apply函数在每行中使用正则表达式计数

我有一个具有以下结构的Pandas df :


Store CID UnitsOH Count



1 23095 17_17_17_16_16_15_15_15_15_15_13_12_10_9_8_7_7... 15982



23101 6_6_5_5_5_5_4_3_3_3_7_6_5_5_5_5_5_5_3_2_2_5_5_... 15982



23117 6_6_6_6_6_6_6_6_6_6_6_6_5_5_5_4_3_3_3_3_3_3_3_... 15982



23161 6_6_6_6_6_6_6_6_6_6_6_5_5_5_4_4_4_4_4_3_3_3_3_... 15982



23222 5_5_5_5_5_5_5_5_4_4_4_4_3_3_3_3_3_3_3_3_3_3_7_... 15982



我需要计算在Units OH列上发生特定模式的次数,例如,需要计算每行连接任意正数的次数(后跟"_"分隔符时,

我使用以下代码创建了名为“ Count的最后一列:





ConcatOH['Count'] = ConcatOH['Units_OH'].str.count('_[1-9]_[0]_').sum()




怎么能只按行数

时间:

删除结尾处的.sum()ConcatOH['Units_OH'].str.count('_[1-9]_[0]_').sum()

ConcatOH['Units_OH'].str.count('_[1-9]_[0]_')返回一个序列,然后对它求和以便得到一个int,并为ConcatOH['Count']赋值,因此,

基本上是

ConcatOH['Count'] =15982

你想要

ConcatOH['Count'] = ConcatOH['Units_OH'].str.count('_[1-9]_[0]_')


import re


ConcatOH['Units_OH'].apply(lambda x: len(re.findall('_[d+]_0', x)))



...