Python:由数据帧和列表组成的IF语句

问题描述 投票:0回答:1

我对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
python for-loop if-statement jupyter-notebook sentiment-analysis
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.