Чтение в CSV-файлах по горизонтали с помощью csvreader в python - PullRequest
0 голосов
/ 14 марта 2019

Согласно моим исследованиям, csvreader считывает данные в таком формате, как этот

Name,Date,Job
John,3/14/2019,Doctor
Susan,3/14/2019,Cashier

Однако данные, которые я сохранил, отформатированы так:

Name,John,Susan,
Date,3/14/2019,3/14/2019
Job,Doctor,Cashier

Есть ли способ заставить читателя CSV читать его таким образом? В настоящее время я делаю это без него, но довольно утомительно, когда между запятыми появляются новые строки.

Ответы [ 2 ]

0 голосов
/ 15 марта 2019

Try (not_csv.txt - это файл, который содержит предоставленные вами данные)

Структура данных, созданная zip, представляет собой список кортежей.

Читайте о zip здесь .

with open('not_csv.txt', 'r') as f:
    data = [line.strip() for line in f.readlines()]
    for idx, entry in enumerate(data):
        if idx == 0:
            names = entry.split(',')[1:]
        elif idx == 1:
            dates = entry.split(',')[1:]
        elif idx == 2:
            jobs = entry.split(',')[1:]
merged_data = zip(names, dates, jobs)

print(merged_data)

выход

[('John', '3/14/2019', 'Doctor'), ('Susan', '3/14/2019', 'Cashier')]
0 голосов
/ 14 марта 2019

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

импорт панд как pd

df = pd.read_csv ('горизонтальный.csv ', index_col = 0)

>>> df
           John      Susan
Name                      
Date  3/14/2019  3/14/2019
Job      Doctor    Cashier

>>> df.T
Name        Date      Job
John   3/14/2019   Doctor
Susan  3/14/2019  Cashier
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...