繁体   English   中英

如何检查数据帧是否包含python中的字符串?

[英]How to check if a dataframe contains a string in python?

我的report.txt包含

I am a student from Tribhuwan university

而我的dictionary.txt包含这个。 在此输入图像描述

我试图检查字典中的单词是否包含报告中的单词。 但是,使用下面的代码我只得到第一个元素的结果v为True。 然而,在我看来,v应该适用于所有情况,因为字典中的所有单词都包含在报告中。 请帮我弄清楚我做错了什么。

我的dictionary.txt包含这个

words, synonyms
I, me
student, pupil
tribhuwan,
university, school

在此输入图像描述

import pandas as pd

report = pd.read_csv("report.txt", header=None)
dict = pd.read_csv("dictionary.txt")

for report in report[0]:
v = []
for word in dict['words']:
    if word in report[0]:
        v.append(True)
    else:
        v.append(False)

这里不需要显式的for循环。 使用Pandas,您可以向数据pd.Series.isin添加额外的列并使用pd.Series.isin 您可能还需要将所有字母都设为小写以进行比较。 最后, 永远不要影响内置,即不要使用dict作为变量名。

这是一个演示:

from io import StringIO

report = StringIO("""I am a student from Tribhuwan university
""")

dictionary = StringIO("""words, synonyms
I, me
student, pupil
tribhuwan,
university, school""")

df_report = pd.read_csv(report, header=None)
df_dict = pd.read_csv(dictionary)

words = df_report[0].str.lower().iat[0].split()

df_dict['check'] = df_dict['words'].str.lower().isin(words)

print(df_dict)

        words  synonyms  check
0           I        me   True
1     student     pupil   True
2   tribhuwan       NaN   True
3  university    school   True

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM