Snažím sa použiť pandas na manipuláciu so súborom .csv, ale dostávam túto chybu:
pandas.parser.CParserError: Error tokenizing data. C error: Očakávané 2 polia v riadku 3, videl 12
Pokúsil som sa prečítať dokumenty pandas, ale nič som nenašiel.
Môj kód je jednoduchý:
path = 'GOOG Key Ratios.csv'
#print(open(path).read())
data = pd.read_csv(path)
Ako to môžem vyriešiť? Mám použiť modul csv
alebo iný jazyk ?
Súbor je z Morningstar
Narazil som na rovnaký problém. Zdá sa, že použitie funkcie pd.read_table()
v tom istom zdrojovom súbore funguje. Nepodarilo sa mi vystopovať dôvod, ale pre môj prípad to bolo užitočné riešenie. Možno niekto znalejší dokáže objasniť, prečo to fungovalo.
Edit: Zistil som, že táto chyba sa vkráda, keď máte v súbore nejaký text, ktorý nemá rovnaký formát ako skutočné údaje. Zvyčajne ide o informácie v hlavičke alebo pätičke (väčšie ako jeden riadok, takže skip_header nefunguje), ktoré nebudú oddelené rovnakým počtom čiarok ako vaše skutočné údaje (pri použití read_csv). Použitie read_table používa ako oddeľovač tabulátor, čo by mohlo obísť súčasnú chybu používateľov, ale zaviesť ďalšie.
Zvyčajne to obchádzam tak, že dodatočné údaje načítam do súboru a potom použijem metódu read_csv().
Presné riešenie sa môže líšiť v závislosti od aktuálneho súboru, ale tento prístup sa mi osvedčil v niekoľkých prípadoch