Панды - Добавление пустого столбца заголовка в CSV - PullRequest
0 голосов
/ 02 ноября 2018

Я пытаюсь объединить несколько файлов CSV по группам клиентов, используя следующий код:

files = glob.glob(file_from + "/*.csv") <<-- Path where the csv resides
df_v0 = pd.concat([pd.read_csv(f) for f in files]) <<-- Dataframe that concat all csv files from files mentioned above

Проблема в том, что количество столбцов в csv зависит от клиента, и у них нет заголовочного файла.

Я пытаюсь посмотреть, смогу ли я добавить в столбец заголовка-пустышку такие метки, как col_1, col_2 ... в зависимости от количества столбцов в этом csv.

Может кто-нибудь подсказать, как мне это сделать. Спасибо.

Обновление при попытке поиска определенной строки в кадре данных:

Пример кадра данных

col_1,col_2,col_3
fruit,grape,green
fruit,watermelon,red
fruit,orange,orange
fruit,apple,red

Попытка отфильтровать строки, содержащие слово red, и ожидать, что они вернут строки 2 и 4.

Попробовал следующий код:

df[~df.apply(lambda x: x.astype(str).str.contains('red')).any(axis=1)]

1 Ответ

0 голосов
/ 02 ноября 2018

Используйте параметры header=None для столбцов диапазона по умолчанию 0, 1, 2 и skiprows=1, если необходимо, удалите исходные имена столбцов:

df_v0 = pd.concat([pd.read_csv(f, header=None, skiprows=1) for f in files])

Если хотите также изменить имена столбцов, добавьте rename:

dfs = [pd.read_csv(f, header=None, skiprows=1).rename(columns = lambda x: f'col_{x + 1}') 
        for f in files]
df_v0 = pd.concat(dfs)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...