Python 如何使用NLTK从CSV文件中删除停止字?

Python 如何使用NLTK从CSV文件中删除停止字?,python,csv,nltk,tokenize,data-cleaning,Python,Csv,Nltk,Tokenize,Data Cleaning,尝试从包含3列的csv文件中删除停止字,并使用删除的停止字创建新的csv文件。这是成功的,但是,新文件中的数据显示在顶行,而不是原始文件中的列 import io import codecs import csv from nltk.corpus import stopwords from nltk.tokenize import word_tokenize stop_words = set(stopwords.words('english

尝试从包含3列的csv文件中删除停止字,并使用删除的停止字创建新的csv文件。这是成功的,但是,新文件中的数据显示在顶行,而不是原始文件中的列

    import io 
    import codecs
    import csv
    from nltk.corpus import stopwords 
    from nltk.tokenize import word_tokenize 

    stop_words = set(stopwords.words('english')) 
    file1 = codecs.open('soccer.csv','r','utf-8') 
    line = file1.read() 
    words = line.split()
    for r in words: 
        if not r in stop_words: 
            appendFile = open('stopwords_soccer.csv','a', encoding='utf-8') 
            appendFile.write(" "+r)
            appendFile.close()

您需要在写入每一行后插入换行符

for r in words: 
    if not r in stop_words: 
        appendFile = open('stopwords_soccer.csv','a', encoding='utf-8') 
        appendFile.write(r)
        appendFile.write("\n")
        appendFile.close()

这应该可以解决您的问题。

如果您包含.csv文件的前10行,这将非常有用。@Gardener执行此操作的最佳方法是什么,抱歉,我对所有这些都不熟悉。新的csv应该包含什么?例如,如果原始csv的第二列中有一个停止字,那么相应的输出是什么?所有三个专栏?感谢您的快速回复,这已经停止了最初的问题,但现在各专栏混杂在一起,到处都是。我不知道是否有办法分享一些.csv文件file@plshelpme_这在很大程度上取决于CSV文件的排序方式。例如,如果在删除停止字的过程中删除了某个列的某些值,那么最终结果可能会非常混乱。如果您要处理pandas数据帧,而不是读取和写入文件,那会更好。@omkar感谢您的建议,使用了pandas,并取得了成功