在python中用for循环替换csv列

2024-09-28 03:13:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试用一些不同的方法替换我的数据集。我知道下面的代码块似乎不合逻辑,但我必须这样做。是否有任何选项可以将csv文件中的“文本”值替换为for循环的标记化和过滤行

dataset = pandas.read_csv('/root/Desktop/%20/%1004.csv' , encoding='cp1252')



counter=0


for field in dataset['text']:
    tokens = word_tokenize(field.translate(table))
    tokens2= [w for w in tokens if not w in stop_words]
    tokens3 = [token for token in tokens2 if not all(char.isdigit() or char == '.' or char == '-' for char in token)]
    lemmatized_word = [wordnet_lemmatizer.lemmatize(word) for word in tokens3]
    stemmed_word = [snowball_stemmer.stem(word) for word in lemmatized_word]



    ##### ANY CODE TO REPLACE ITEMS IN dataset['Text'] to stemmed_word
    ##### LIKE ;
    dataset['Text']s first value = stemmed_word[counter]
    counter=counter+1
    then save replaced csv file

Tags: csvintokenfieldforifcounternot
1条回答
网友
1楼 · 发布于 2024-09-28 03:13:03

because I have features at another columns like age , gender , experience.

你可以把不想修改的数据保持原样,然后把它们和你修改过的列一起写入新文件。然后,是将新处理的数据集写入新文件还是覆盖旧文件完全取决于您自己。虽然我个人会选择写入一个新文件(现在添加另一个CSV文件不太可能成为计算机存储的问题)

无论如何,要编写文件,可以使用csv模块

import pandas
import csv

dataset = pandas.read_csv('/root/Desktop/%20/%1004.csv' , encoding='cp1252')

# do your text processing on the desired column for your dataset
# ...
# ...
# ...

dataT = dataset.transpose()

with open('new_dataset', 'wb') as csvfile:
    writer = csv.writer(csvfile)
    for r in dataT:
        writer.writerow(dataT[r])

我不能完全测试它,因为我不知道你的数据集的确切格式。但是它应该是沿着这条线的东西(也许你应该直接写处理过的数据帧,而不是它的转置;你应该可以在玩过之后自己弄清楚)

相关问题 更多 >

    热门问题