我对python很陌生,需要帮助。我有一个从数据帧中获取的关键字列表,如下所示:key_a_list = df_key_words['words'].tolist()
我有第二个数据框,其中包含以下语句:df_response['statement']
我已经纠正了拼写错误,将其标记了文字并阻止了df_response['statement']
列中的文本。我需要检查key_a_list
中是否有与df_response['statement']
中的单词匹配的单词;那么我必须设置一个计数器来计算key_a_list
中来自df_response['statement']
的单词出现的次数。
感谢您的时间和帮助,不胜感激:)
这是我拥有的当前代码,但它给我一个错误:ValueError:长度必须匹配才能进行比较
count_a = 0
def count(x):
for x in key_a_list:
if key_a_list == df_response['statement']:
count_a = count_a + 1
return count_a
df_response['statement'] = df_response['statement'].apply(lambda x: " ".join([count(x) for word in x.split()]))
key_a_list由以下单词组成:['think','college','education','help','better','prepare','career','chosen','最终','enable', “输入”,“工作”,“市场”,“领域”,“喜欢”,“制作”,“选择”,“社交”,“方向”,“相信”,“其他”,“年份”,“改善” ','能力','工人','证明','能力','完成','学位','富有','成功','感觉','重要','展现','聪明', “人”,“命令”,“薪水”,“以后”,“上”,“想要”,“该”,“好”,“生活”,“学习”,“高中”,“精算”,“发现” ','高薪','获得','享有盛誉”]
df_response ['statement']看起来如下:
statement
0 parent said
1 want make difference
2 dont know
3 rich
4 go career want
5 actuary
6 social life
7 expected society
其中df_response的期望输出是:
statement count_a
0 parent said 0
1 want make difference 2
2 dont know 0
3 rich 1
4 go career want 2
5 actuary 1
6 social life 2
7 expected society 0
[我认为您希望将if语句中的key_a_list更改为“ x”,因为x包含循环正在遍历的key_a_list中的每个单词。接下来,您可以使用关键字“ in”来检查x是否在df_response [“ statement”]中,并进行计数。
此外,您可以在函数内部定义count_a,因此它不是全局变量,以避免每次运行函数count(x)而不是将其添加到现有计数器时都将其重置。
我认为应该这样,如果我错了,请更多有经验的成员纠正我:
def count(x):
count_a = 0
for x in key_a_list:
if x in df_response['statement']:
count_a = count_a + 1
return count_a