#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