Как я могу подсчитать вхождение определенного символа, который отличается в каждой строке

#python #pandas #count

#python #панды #подсчитать

Вопрос:

Я хотел бы подсчитать, как часто конкретный символ (который отличается в каждой строке) появляется в серии фреймов данных. Пример фрейма данных:

givenletter фраза
w что, что, что
q queenbee
d devildonkey
n вау
e высокомерный

Желаемый результат:

givenletter фраза частота
w что, что, что 3
q queenbee 1
d devildonkey 2
n вау 0
e высокомерный 0

Попытка выполнить приведенный ниже код просто вернулась как 0 для всех частот

 df["frequency"] = df["phrase"].str.count(str(df["givenletter"]))
 

Я пытался разобраться в похожих вопросах stackoverflow, но все они, похоже, связаны с подсчетом появления символа, который не меняется. Был бы признателен за любые советы о том, как я мог бы исправить свой код.

Ответ №1:

Попробуйте

 df['frequency'] = df.apply(lambda x:x['phrase'].count(x['givenletter']), axis=1)
 

Ответ №2:

Для этого достаточно понимания списка:

 df["frequency"] = [phrase.count(letter) 
                   for phrase, letter 
                   in zip(df.phrase, df.givenletter)]
df    

    givenletter   phrase    frequency
0       w       whatwhatwhat    3
1       q       queenbee        1
2       d       devildonkey     2
3       n       woohoo          0
4       e       arrogant        0