2017-02-22 32 views
1

Так что я необработанный файл, как это с около 20k колонн, похожее на это:Панды read_csv, как иметь дело с разделительным символом в скобках

number|colour|(a|1)|animal 
1|green|x|dog 
2|blue|y|cat 
3|red|z|owl 

, когда я использую read_csv («raw.csv», Сентябрь =» | '), это создает блок данных с дополнительным столбцом, потому что столбец (a | 1) становится разделенным.

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

+0

[Это] (HTTP://stackoverflow.com/questions/35948417/how-to-use-square-brackets-as-a-quote-character-in-pandas-read-csv) может помочь. – Cleb

+0

Что-то очень специфичное для данных в вашем вопросе будет 'pd.read_csv ('raw.csv', sep =" (? Abdou

ответ

2

С данными примера, которые вы указали, дополнительный разделитель появляется только в строке заголовка. Таким образом вы могли бы поставить свои собственные имена столбцов, используя names ключевое слово, а затем сказать панд, чтобы пропустить строку заголовка следующим образом:

import pandas as pd 

df = pd.read_csv('raw.csv', sep='|', skiprows=1, names=["number", "colour", "(a|1)", "animal"]) 
print df 

Это даст вам:

number colour (a|1) animal 
0  1 green  x dog 
1  2 blue  y cat 
2  3 red  z owl