【发布时间】:2016-12-25 17:20:05
【问题描述】:
我有一个包含 8700 万行和 5 列的表。我也有一个单独的文件,大约 3500 字。我想检查 .txt 文件中的单词,并在表格的每行的 4 列中检查该单词。如果该词出现在任何列中,那么我想删除这些行。这将帮助我大大减少这里的行数。以下是我正在使用的代码,
bad_words = pd.read_csv('badwords.txt')
bad_words.dtypes
words object
dtype: object
bad_words
words
0 word1
1 word3
2 word5
3 word13
4 word16
data
s.no column1 column2 column3 column4
1 aaaword1b aaaword2b aaaword3b aaaword4b
2 aaaword5b aaaword6b aaaword7b aaaword8b
3 aaaword9b aaaword10b aaaword11b aaaword12b
4 aaaword13b aaaword14b aaaword15b aaaword16b
5 aaaword17b aaaword18b aaaword19b aaaword20b
我想从坏词文档中删除包含单词的行。这个的输出应该是,
data
s.no column1 column2 column3 column4
3 aaaword9b aaaword10b aaaword11b aaaword12b
5 aaaword17b aaaword18b aaaword19b aaaword20b
我正在尝试做类似的事情,
data[(data['column1'].str.contains("word1|word3|word5|word13|word16")==False)|
(data['column2'].str.contains("word1|word3|word5|word13|word16")==False)|
(data['column3'].str.contains("word1|word3|word5|word13|word16")==False)]
但我不确定我们是否可以为整个 3500 个单词做到这一点。也不确定这是否是处理 8700 万行的有效方法。
用字符串模式而不是直接词更新了问题。抱歉之前的要求不好。
谁能给我建议一个更好的方法来做到这一点?
谢谢
【问题讨论】:
标签: python string pandas data-cleaning