Заменить столбец csv на цикл for в python - PullRequest
0 голосов
/ 08 ноября 2019

Я пытаюсь заменить свой набор данных другим способом. Я знаю, что нижеприведенные блоки кода кажутся нелогичными, но я имею отношение к этому. Можно ли заменить мои значения 'Text' в файле 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

1 Ответ

0 голосов
/ 08 ноября 2019

потому что у меня есть функции в других столбцах, такие как возраст, пол, опыт.

Вы можете просто оставить данные, которые вы не собираетесь изменять, как есть, и записать их вновый файл вместе с вашим измененным столбцом лемматизированных слов. Тогда, независимо от того, записываете ли вы новый обработанный набор данных в новый файл или перезаписываете старый, полностью зависит от вас. Хотя я лично предпочел бы записать в новый файл (вряд ли добавление другого 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])

Я не могу полностью проверить это, так как я не знаю точный формат вашего набора данных. Но это должно быть что-то вроде этого (возможно, вам следует писать обработанный кадр данных напрямую, а не его транспонирование; вы должны сами это выяснить, поиграв с ним).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...