Невозможно прочитать CSV при пропуске первой строки и использовании второго в качестве заголовка в пандах для необработанных тиковых данных символов - PullRequest
0 голосов
/ 27 декабря 2018

У меня есть много csv-файлов разного размера, содержащих тиковые данные для некоторых символов.Вот изображение одного примера файла.enter image description here

Все в одном столбце, разделенном ';'.Я хочу прочитать данные со второй строкой в ​​качестве заголовка и пропустить первую строку.До этого времени я пробовал все, что я могу узнать о загрузке файла CSV при пропуске первой строки и использовании второй строки в качестве заголовка.Вот некоторые из моих фрагментов кода, которые я устал

df = pd.read_csv(cwd + folder + name +'.csv',delimiter=';', skip_blank_lines=True, encoding='utf-8', skiprows=[0])

другой похож на этот

df = pd.read_csv(cwd + folder + name +'.csv',delimiter=';', encoding='utf-8', skiprows=[0], header=1)

, и вывод всех из них с одним столбцом с именем «Безымянный: 0» свсе значения в датафрейме как NaN.Я пробовал разные решения, такие как

Python Pandas read_csv пропускает строки, но сохраняет заголовок , но ни одно из них не помогло мне.Если я не пропускаю первую строку и не читаю файл без разделителя, то это дает unicodeerror в Python.Как решить эту проблему?

После двух решений в первых двух ответах это мой вывод для обоих кодов

enter image description here

Ответы [ 2 ]

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

@ Urvish - я использовал тот же код , который вы использовали в своем посте, и вы увидите, что вывод точный.Пожалуйста, проверьте ваш файл.

import pandas as pd
df = pd.read_csv("C:\\Users\\user\\Downloads\\sof.csv" ,delimiter=';', skip_blank_lines=True, encoding='utf-8', skiprows=[0])
print(df)

Вывод:

            Date    bid    ask  last  volume
2017 06 05   799  149.6  149.7   0.0     0.0
2017 06 05   799  149.6  149.7   0.0     0.0
0 голосов
/ 27 декабря 2018

в skiprows вам нужно указать количество строк, которые вы хотите пропустить с вершины вашего csv

use utf-16

df = pd.read_csv(cwd + folder + name +'.csv',delimiter=';', encoding='utf-16', skiprows=1)

для получения дополнительной информации:

Чтобы проверить кодировку, которую я проверил в libreoffice.если вы откроете с помощью libreoffice в его стартовом окне, вы можете выбрать разделитель, в котором он также показывает utf кодировку этого файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...