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

$('table').each(function(index) {
    $(this).find('tr').each(function() {
      $(this).find('td:first-child').each(function(i) { 
        var a;
        var b;
        var c;
        $(this).find('a:first').each(function(i) { 
          a = $(this).text();
        });
        $(this).find('p:first').each(function(i) { 
          b = ($(this).text());
        });
        $(this).find('time:first').each(function(i) { 
          c = $(this).text();
        });
        console.log(a + ";"  + b + ";" + c);
      });
    });
  });
XA452:01 Description in Column 1;ID Column1;13.03.2018
AY102:22 Description in Column 2;ID Column2;13.03.2018
BC001:31 Description in Column 3;ID Column3;13.03.2018
DE223:34 Description in Column 4;ID Column4;13.03.2018
FG315:56 Description in Column 5;ID Column5;13.03.2018
HA212:34 Description in Column 6;ID Column6;13.03.2018
EE111:12 Description in Column 7;ID Column7;13.03.2018

Я хочу начать анализ данных, где строка начинается с XA452: 01.

Я пробовал это:

import pandas as pd

testimport_data = pd.read_csv("C:/Users/fff/Desktop/test_data.txt", sep=";", skiprows = 19)

print(testimport_data)

Это должно работать, не так ли? Тем не менее, я получаю следующее сообщение об ошибке:

Traceback (most recent call last):
  File "C:/Users/fff/PycharmProjects/Test/Test.py", line 3, in <module>
    testimport_data = pd.read_csv("C:/Users/fff/Desktop/test_data", sep=";", skiprows = 19)
  File "C:\Users\fff\PycharmProjects\Test\venv\lib\site-packages\pandas\io\parsers.py", line 709, in parser_f
    return _read(filepath_or_buffer, kwds)
  File "C:\Users\fff\PycharmProjects\Test\venv\lib\site-packages\pandas\io\parsers.py", line 449, in _read
    parser = TextFileReader(filepath_or_buffer, **kwds)
  File "C:\Users\fff\PycharmProjects\Test\venv\lib\site-packages\pandas\io\parsers.py", line 818, in __init__
    self._make_engine(self.engine)
  File "C:\Users\fff\PycharmProjects\Test\venv\lib\site-packages\pandas\io\parsers.py", line 1049, in _make_engine
    self._engine = CParserWrapper(self.f, **self.options)
  File "C:\Users\fff\PycharmProjects\Test\venv\lib\site-packages\pandas\io\parsers.py", line 1695, in __init__
    self._reader = parsers.TextReader(src, **kwds)
  File "pandas\_libs\parsers.pyx", line 565, in pandas._libs.parsers.TextReader.__cinit__
pandas.errors.EmptyDataError: No columns to parse from file

Что я делаю не так?

0
Ferit 13 Мар 2018 в 21:35

2 ответа

Лучший ответ

Вы можете спать, читая эти строки.

import pandas as pd

with open('pd_csv.csv') as f:
    data = [line.split(";") for line in f.readlines()[19:]]

testimport_data = pd.DataFrame(data)
print(testimport_data)
2
Rahul 13 Мар 2018 в 19:02

Изменить . То, что я говорю ниже, не совсем верно, как указала Рахул. Проблема возникает, поскольку пропущенный текст содержит точку с запятой. Поэтому мое переключение точки с запятой на запятую исправляет эту проблему, поскольку в пропущенном тексте нет запятых.

Старый текст . Это проблема с; в качестве разделителя. Почему я не уверен, но если вы переключаете текстовые файлы ';' на ',' тогда программа работает нормально.

В прошлом у меня была эта работа, меняя механизм, который использует pandas для чтения файла, если вам нужно, используйте точки с запятой.

Файл, который я использовал, называется values.txt

$('table').each(function(index) {
    $(this).find('tr').each(function() {
      $(this).find('td:first-child').each(function(i) { 
        var a;
        var b;
        var c;
        $(this).find('a:first').each(function(i) { 
          a = $(this).text();
        });
        $(this).find('p:first').each(function(i) { 
          b = ($(this).text());
        });
        $(this).find('time:first').each(function(i) { 
          c = $(this).text();
        });
        console.log(a + ";"  + b + ";" + c);
      });
    });
  });
XA452:01 Description in Column 1,ID Column1,13.03.2018
AY102:22 Description in Column 2,ID Column2,13.03.2018
BC001:31 Description in Column 3,ID Column3,13.03.2018
DE223:34 Description in Column 4,ID Column4,13.03.2018
FG315:56 Description in Column 5,ID Column5,13.03.2018
HA212:34 Description in Column 6,ID Column6,13.03.2018
EE111:12 Description in Column 7,ID Column7,13.03.2018

Затем запустил его с:

>>> data = pd.read_csv('values.txt', sep=',', skiprows=19, names=['1', '2', '3'])
>>> data
                                  1           2           3
0  XA452:01 Description in Column 1  ID Column1  13.03.2018
1  AY102:22 Description in Column 2  ID Column2  13.03.2018
2  BC001:31 Description in Column 3  ID Column3  13.03.2018
3  DE223:34 Description in Column 4  ID Column4  13.03.2018
4  FG315:56 Description in Column 5  ID Column5  13.03.2018
5  HA212:34 Description in Column 6  ID Column6  13.03.2018
6  EE111:12 Description in Column 7  ID Column7  13.03.2018
1
akozi 13 Мар 2018 в 19:15