遍历熊猫数据框以查看特定短语(关键字)是否在关键字列表的列中

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

我对python还是比较陌生,如果这个问题很简单,请抱歉。我有一个带有两列的pandas数据框,一个文件ID号和该文件中的关键字列表。我本质上希望能够遍历每一行,并查看所选关键字是否在文件关键字列表中,以及是否已打印出文件ID。或者,我可以创建一个所有正匹配的新数据框,然后从那里打印文件ID。研究之后,我想使用df.loc[df['key words'] == key_word, :]这将为我提供所有正匹配的新数据框。问题是,没有正匹配项,因为我忘记了“关键词”列中的每一行都有关键词列表。谁能帮助我找到解决方案? (最好是一个基本的,因为我确实是新来的)。非常感谢。

python pandas dataframe
1个回答
0
投票

解决方案可以是熊猫内部联接:您最好先将您的key_word数组转换为熊猫数据帧。假设您已将数组另存为“ key_words.csv”,并给该标签加上“ my_key”:

col_name = ['my_key']
df1 = pd.read_csv("key_words.csv", names = col_name ,skiprows=[0],encoding ='utf-8')

使用skip_rows [0],如果您的第一行是注释,则不要忽略它!!!请注意:非常重要的一点是,您的key_words编码和要比较的引用列的编码必须完全相同!!!所以你可以做:

df1[col_name] = dfcat1[col_name].astype(str)
df1 = df1.convert_dtypes()

您还需要为df ['keyword']列重复相同的dtype转换。

然后您可以使用内部联接:

df12 = df1.merge(df, how ='inner', left_on = key1, right_on = key)

Key1和Key是您要比较的列的标签。df12仅包含具有公共关键字字符串的行。

© www.soinside.com 2019 - 2024. All rights reserved.