Развернуть .csv строки из кавычек - PullRequest
0 голосов
/ 15 декабря 2018

Файл .csv выглядит следующим образом

col1, col2, col3
"a, b, c"
"d, e, f"

, и я хочу развернуть строки из кавычек, чтобы правильно прочитать файл в pandas / Python.Как указано в этом дублирующем вопросе в R, можно прочитать данные .csv дважды: 1) развернуть данные в первом столбце вспомогательного кадра данных и 2) вызвать функцию чтения в первом столбцевспомогательный фрейм данных.

Какой самый элегантный способ сделать это в пандах?

Ответы [ 2 ]

0 голосов
/ 15 декабря 2018

Полагаю, я бы

  1. Считал необработанный CSV-файл в виде строки и сделал необходимые мне замены.
  2. Поместил новую строку в буфер.
  3. Считать буфер как файл csv с пандами.

В коде:

import io
import pandas as pd


with open('./csv_quotes.csv') as file:
    raw_csv = file.read()
    new_csv = raw_csv\
        .replace('\n\"', '\n')\ # replace "a,... => a,...
        .replace('\"\n', '\n')\ # replace ..., c" => ..., c
        .replace(', ', ',') # replace a, b, c => a,b,c
    sio = io.StringIO(new_csv) # 

    df = pd.read_csv(sio, sep=',')
    print(df.values)

Вывод:

[['a' 'b' 'c']
 ['d' 'e' 'f']]

ПРИМЕЧАНИЕ : вы можете использовать регулярные выражения для замены.Посмотрите на этот ответ .

0 голосов
/ 15 декабря 2018

Вы можете отключить цитирование, установив для параметра quoting значение 3.Затем удалите все ваши цитаты.

data = pd.read_csv('file.csv', quoting=3)
for col in data:
    data[col] = data[col].str.strip('"')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...