熊猫数据框过滤器不起作用,但str.match()起作用

懒人

我有一个Pandas Dataframe words_df,其中包含一些英语单词。

它只有一列名为word包含英语单词。

words_df.tail()

在此处输入图片说明

words_df.dtypes

在此处输入图片说明

我想过滤出包含单词zythum的行

使用熊猫系列str.match()可以给我预期的输出:

words_df[words_df.word.str.match('zythum')]

我知道str.match()这不是正确的方法,它还会返回包含诸如zythums之类的其他单词的行

在此处输入图片说明

但是,对Pandas Dataframe使用以下操作会返回一个空的Dataframe

words_df[words_df['word'] == 'zythum']

在此处输入图片说明

我想知道为什么会这样吗?

编辑1:我还将附加我的数据源和用于导入它的代码。

数据源(我使用了“ csv.zip中的单词列表”):

https://www.bragitoff.com/2016/03/english-dictionary-in-csv-format/

数据框导入代码:

import pandas as pd
import glob as glob
import os as os
import csv

path = r'data/words/' # use your path
all_files = glob.glob(path + "*.csv")

li = []

for filename in all_files:
    df = pd.read_csv(filename, index_col=None, header=None, names = ['word'], engine='python', quoting=csv.QUOTE_NONE)
    li.append(df)

words_df = pd.concat(li, axis=0, ignore_index=True)

编辑2:

这是我的代码块,带有更简单的导入代码,但面临相同的问题。(使用上述链接中的Zword.csv文件)在此处输入图片说明

斯科特·波士顿

IIUC:df1[df1['word'] == 'zythum']不起作用。

尝试删除数据框中字符串周围的空格:

 df1[df1['word'].str.strip() == 'zythum']

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章