在pandas数据帧中删除包含非英语单词的行

时间:2015-08-06 21:34:46

标签: python pandas nltk

我把这个twitter语料库变成了pandas数据框,我试图找到没有英文的推文并从数据框中删除它们,所以我这样做了:

for j in range(0,150):
    if not wordnet.synsets(df.i[j]):#Comparing if word is non-English
           df.drop(j)

 print(df.shape)

但我检查了形状,没有掉落任何行。 我使用drop函数错误,还是需要跟踪行的索引?

2 个答案:

答案 0 :(得分:1)

这是因为df.drop()返回副本而不是修改原始数据帧。尝试设置inplace=True

for j in range(0,150):
    if not wordnet.synsets(df.i[j]):#Comparing if word is non-English
           df.drop(j, inplace=True)

print(df.shape)

答案 1 :(得分:0)

这将过滤掉熊猫数据框中的所有非英语行。

import nltk
nltk.download('words')
from nltk.corpus import words
import pandas as pd

data1 = pd.read_csv("testdata.csv")

Word = list(set(words.words()))

df_final = data1[data1['column_name'].str.contains('|'.join(Word))]

print(df_final)