Экспорт выходных данных Pandas для нескольких CSV-файлов

#python #pandas #csv #glob

Вопрос:

У меня есть много CSV-файлов в подкаталогах в одной папке. Все они содержат твиты и другие метаданные. Я заинтересован в удалении большей части этих метаданных и сохранении самих твитов и их времени. Я использовал glob для чтения файлов, и часть удаления, похоже, работает нормально. Однако я не уверен, как сохранить выходные данные, чтобы все файлы были сохранены и с их исходным именем файла.

 import pandas as pd
import glob
path = r'D:tweets'
myfiles= glob.glob(r'D:tweets***.csv', recursive=True)
for f in myfiles:
    df = pd.read_csv(f)
df = df.drop(["name", "id","conversation_id","created_at","date"], axis=1)
df = df[df["language"].str.contains("bn|ca|ckbu|id||zh")==False]
df.to_csv("output_filename.csv", index=False, encoding='utf8')
 

Комментарии:

1. Есть ли у них проблемы с отступами в вашем вопросе? Если нет, то в файле есть не только последний файл D:tweets преобразуется обратно в csv.

2. Единственный отступ, который у меня есть, находится в шестой строке (df = pd.read_csv(f))

3. Поскольку вы обрабатываете каждый из списка myfiles , ваш код должен быть частью цикла for. я не думаю, что вам нужно будет перезаписывать исходный файл, тогда что-то вроде поможет df.to_csv(os.path.splitext(f)[0] "_transformed.csv")

4. @SimpleApp Это сработало как по волшебству!!! Огромное вам спасибо!!

5. @Ercan Taner Большое вам спасибо, теперь это работает благодаря вам обоим!

Ответ №1:

Если вы сделаете это таким образом, он перезапишет тот же файл:

 for f in myfiles:
    df = pd.read_csv(f)
    df = df.drop(["name", "id","conversation_id","created_at","date"], axis=1)
    df = df[df["language"].str.contains("bn|ca|ckbu|id||zh")==False]
    df.to_csv(f, index=False, encoding='utf8')