Python 3.x: Pandas DataFrame Как перезаписать CSV-файлы (пакетный процесс) - PullRequest
0 голосов
/ 07 февраля 2019

У меня есть куча CSV-файлов в папке.Я был пакетной обработки CSV-файлов.Но когда я читаю его, используя мой фрейм данных pandas, он читает файлы следующим образом.

0     -1     4650.0         NaN
1      0        0.0         NaN
2      1        0.0         NaN
3      2        0.0         NaN
4      3        0.0         NaN
5      4        0.0         NaN
6      5        0.0         NaN

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

Ответы [ 2 ]

0 голосов
/ 07 февраля 2019

Ответ, опубликованный @ victor-valente, - лучший подход к обработке этих CSV-файлов.Однако, если вы все же хотите полностью удалить этот столбец Nan из файлов, вы можете сделать что-то вроде этого -

import glob
import pandas as pd
csv_files = list(glob.glob("path/to/directory/*.csv"))
for i in csv_files:
    pd.read_csv(i, usecols=[0,1,2]).to_csv(i)

Это должно перезаписать существующие файлы после удаления этого 4-го пустого столбца.

Что-то проще было бы просто сделать df.dropna(axis='columns', how='all', inplace=True) на df, который вы построили после пакетной обработки ваших csv-файлов.Это приведет к удалению любых столбцов, которые содержат только значения NaN.

0 голосов
/ 07 февраля 2019

Я думаю, вы могли бы просто не читать последний столбец.

Если ваш исходный файл состоит из 3 столбцов, то pd.read_csv('filepath', usecols=[0, 1]) должно сработать.

Таким образом, вы будете использовать только столбцы 0 (первый) и 1 (второй).

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