我有一个熊猫数据框,在不同的行上列出了常见的婴儿名字。我需要循环遍历每一行中的每个名称,并检索字母表中每个字母显示为婴儿名称的最后一个字符的次数。然后,我需要返回键和值的字典,其中键是26个字母,而值是字母表字母作为数据帧中所有婴儿名称中的最后一个字符的频率。
我是否使用带正则表达式的for循环?我用柜台吗?将色谱柱转换为系列后,是否使用字符串方法?
关于for循环和正则表达式,到目前为止我尝试过:
import re
for index, row in male_names.iterrows():
male_last_letter_freq = row['name'](r'/(\w)\b/')
male_letter_freq.update(male_last_letter_freq)
male_last_letter_freq
显然,我不知道在循环中包含正则表达式的语法。
我还尝试将数据框中的“名称”列转换为系列并调用一些pandas .str方法:
male_name_series = male_names['name']
male_name_series.str.extract(r'/(\w)\b/')
两种方式都会返回错误我真的不知道如何做这样一个特定的事情。任何帮助将不胜感激。
如果我正确理解你的问题,你不需要正则表达式,但只需使用:
dict(pd.value_counts(df["name"].str[-1]))
说明:df["name"].str[-1]
提取最后一个字符,pd.value_counts
计算唯一值,最后dict
将对象转换为字典