Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中检查数据帧是否包含字符串?_Python_Pandas - Fatal编程技术网

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

如何在python中检查数据帧是否包含字符串?,python,pandas,Python,Pandas,我的report.txt包含 I am a student from Tribhuwan university 而我的dictionary.txt包含了这个。 我正在检查字典里的单词是否包含报告中的单词。但是,使用下面的代码,我只得到第一个元素的结果v为True。然而,在我看来,v应该适用于所有情况,因为字典中的所有单词都包含在报告中。请帮我找出我做错了什么 我的dictionary.txt包含以下内容 words, synonyms I, me student, pupil tribhuw

我的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


这里的循环不需要显式的
。使用Pandas,您可以向数据帧添加额外的列,并使用
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

你可以试试
report['column\u name'].isin(dict['words'])
为什么不使用
df['column'].str.contains(“string”)
这确实是一个不错的选择+1@jpp,这绝对解决了我想做的事情。谢谢你。然而,我仍然在想为什么for循环不起作用。@pari,第一个问题是
dict['words']
是一个系列而不是一个单词列表。
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