Как прочитать файл значений, разделенных пробелами (csv), созданный с использованием синтаксиса, подобного оболочке, в DPython

Программы на Python
Anonymous
Как прочитать файл значений, разделенных пробелами (csv), созданный с использованием синтаксиса, подобного оболочке, в D

Сообщение Anonymous »

Я ищу быстрый способ чтения файла csv в фрейм данных. CSV-файл разделен пробелом, однако имена столбцов помещаются в двойные кавычки, если он содержит более одного слова и содержит несколько пробелов. pd.read_csv с sep=" " не работает, потому что имена столбцов пробелы.
В настоящее время я решил эту проблему, применив shlex.split к каждой строке файла, изменив его. через запятую. Однако это занимает слишком много времени: ~6 секунд для файла с 15 тысячами строк. Ниже приведен пример моего файла ('template.csv') и фрагмент кода о том, как эта проблема решается с помощью shlex.split.
Заранее благодарим за помощь!
a b c "d e " "f g " "h k "
1 2 3 4 5 6
2 2 3 4 5 6
3 2 3 4 5 6
4 2 3 4 5 6
5 2 3 4 5 6
6 2 3 4 5 6

Это код и желаемый вывод данных:
import pandas as pd
import shlex
data = []
df = pd.DataFrame()
for line in open(r'template.csv'):
line = shlex.split(line)
data.append(line)
df = pd.DataFrame(data[1:], columns=[colName for colName in data[0]])

a b c d e f g h k
0 1 2 3 4 5 6
1 2 2 3 4 5 6
2 3 2 3 4 5 6
3 4 2 3 4 5 6
4 5 2 3 4 5 6
5 6 2 3 4 5 6


Подробнее здесь: https://stackoverflow.com/questions/777 ... yntax-into

Вернуться в «Python»