Разбор заголовков CSV - PullRequest
2 голосов
/ 21 мая 2019

Мое требование - прочитать несколько CSV-файлов, которые содержат данные, которые меня интересуют, после n числа строк. Это число n не является постоянным, так как оно варьируется в зависимости от разных CSV (следовательно, я не могу использовать скипроу).

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

 Test: Rate1, "2" , units
 specimen: Rectangular, "3", units

Time, Estimate, Load
(s) , (units) , (N)
"1","2","4"
"5","8","12"

Другой CSV, вероятно, будет:

 Test: Rate1, "2" , units
 specimen: Rectangular, "3" , units
 value_based : Sample7, "9" , product
 Test_condition: controlled, "0" , test


Time, Estimate, Load
(s) , (units) , (N)
"12","6","8"
"18","3","2"

Но меня интересуют только имена столбцов: [Time, Estimate, Load].

Я хочу сделать следующее:

  1. Получение данных с указанием заголовков: Time, Estimate и Load.

  2. Пропустить первый ряд значений ((s) , (units), (N)), так как я хочу объединить их с заголовками и переименовать их в Time(s) , Estimate(units), Load(N).

Вот что я пробовал:

with open(file,"r+",newline="") as csvFile:
    dictReader = csv.DictReader(csvFile)
    for row in dictReader:
        print(row["Time"], row["Load"], row["Extension"])
df = pd.read_csv(file,usecols=["Time","Load","Extension"])
print(df["Time"].head(3))

Пожалуйста, предложите, как мне нужно было бы получать данные с предполагаемыми заголовками. Заранее спасибо.

1 Ответ

2 голосов
/ 22 мая 2019

Я не думаю, что сама Pandas способна определить правильную начальную строку, но это можно сделать с помощью небольшой предварительной подготовки файла, чтобы определить правильную строку.Например:

import pandas as pd
import csv

filename = 'test.csv'
header_row = ["Time", "Estimate", "Load"]

with open(filename, newline='') as f_csv:
    for row_number, row in enumerate(csv.reader(f_csv), start=-1):
        if row == header_row:
            break

df = pd.read_csv(filename, skiprows=row_number, names=header_row)
print(df)

Предоставление:

   Time  Estimate  Load
0     1         2     4
1     5         8    12
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...