Как выполнить действие для всех файлов в каталоге, а затем сохранить результаты в другом файле с помощью Python / Pandas? - PullRequest
0 голосов
/ 03 мая 2020

В моем Google Диске хранится 100 файлов .db. Все строки в этих файлах содержат текстовый столбец, для которого мне нужно вычислить оценки полярности настроений для каждой строки, используя пакет vaderSentiment.

Мне удалось сделать это для одного из этих файлов .db, но я хочу повторить этот расчет для всех 99 других файлов в каталоге. Кроме того, я хочу сохранить среднее значение этого столбца '[sentiment_ component_polarity'] 'для каждого файла в моем каталоге на Google Диске в файле .csv. Этот файл должен иметь только два столбца по 100 строк (по 1 для каждого файла), содержащих имя файла и df ['sentiment_compound_polarity']. Mean () для каждого отдельного файла .db, хранящегося в '/ content / drive / My Drive / Database Файлы /'.

Мне удалось заставить работать некоторый код, который печатает средние оценки настроений для каждого файла, но я не знаю, как сохранить его в .csv (конечно, я могу просто скопируйте / вставьте его, но я хочу знать, как это сделать).

import sqlite3
import pandas as pd
from google.colab import drive
from nltk.sentiment.vader import SentimentIntensityAnalyzer

drive.mount('/content/drive')

gdrive = '/content/drive/My Drive/Database Files/'

for db in os.listdir(gdrive):
  with sqlite3.connect(os.path.join(gdrive, db)) as conn:
    df = pd.read_sql_query(SELECT * FROM table, conn)
    df['sentiment_compound_polarity'] = df.text.apply(lambda x: SentimentIntensityAnalyzer().polarity_scores(x)['compound'])
    print (df['sentiment_compound_polarity'].mean())

Любая помощь очень ценится!

1 Ответ

0 голосов
/ 03 мая 2020

Сначала вам нужно подготовить новый фрейм данных (за исключением l oop):

df = pd.DataFrame(columns=['db','mean'])

Затем в l oop добавить новую строку с именем db и значением:

df = df.append(dict(zip(df.columns,[db, df['sentiment_compound_polarity'].mean()])), ignore_index=True)

Затем в конце кода сохраните кадр данных в файл CSV:

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