2016-09-21 4 views
2

Ниже приведены мои данные, и я пытаюсь получить доступ к столбцу. Он не работал отлично до вчерашнего дня, но теперь я не уверен, если я делаю что-то неправильно:Выберите столбцы в pandas DF

DISTRICT;CPE;EQUIPMENT,NR_EQUIPM 
0 47;CASTELO BRANCO;17520091VM;101                                                  
1 48;CASTELO BRANCO;17520103VV;160                                                  
2 49;CASTELO BRANCO;17520103VV;160 

Когда я пытаюсь это, он дает мне ошибку:

df = pd.read_csv(archiv, sep=",") 
df['EQUIPMENT'] 

ОШИБКА:

KeyError: 'EQUIPMENT'

Кроме того, я пытаюсь, но Безразлично `работа как:

df.EQUIPMENT 

ОШИБКА:

AttributeError: 'DataFrame' object has no attribute 'EQUIPMENT'

BTW, я использую:

Python 2.7.12 |Anaconda 4.1.1 (32-bit)| (default, Jun 29 2016, 11:42:13) [MSC v.1500 32 bit (Intel)]

Любая идея?

ответ

2

Вам нужно изменить сен к ;, поскольку сепаратор изменяется в csv:

df = pd.read_csv(archiv, sep=";") 

Если проверка последний разделитель столбцов, есть ,, так что вы можете использовать два сепаратора - ;,, но необходимо добавить параметр engine='python' потому что предупреждение:

ParserWarning: Falling back to the 'python' engine because the 'c' engine does not support regex separators (separators > 1 char and different from '\s+' are interpreted as regex); you can avoid this warning by specifying engine='python'. for index, row in df.iterrows():

Пример:

import pandas as pd 
import io 

temp=u"""DISTRICT;CPE;EQUIPMENT,NR_EQUIPM 
47;CASTELO BRANCO;17520091VM;101 
48;CASTELO BRANCO;17520103VV;160 
49;CASTELO BRANCO;17520103VV;160""" 
#after testing replace io.StringIO(temp) to filename 
df = pd.read_csv(io.StringIO(temp), sep="[;,]", engine='python') 

print (df) 
    DISTRICT    CPE EQUIPMENT NR_EQUIPM 
0  47 CASTELO BRANCO 17520091VM  101 
1  48 CASTELO BRANCO 17520103VV  160 
2  49 CASTELO BRANCO 17520103VV  160 
+0

OMG, спасибо! Он был изменен? Он работал на прошлой неделе с 'sep = ',''. Во всяком случае, это сработало! –

+0

Хммм, похоже, что 'csv' был изменен. Возможно, новый коллега или новая система? – jezrael

+0

Да, [новый выпуск] (http://pandas-docs.github.io/pandas-docs-travis/whatsnew.html). Еще раз спасибо. –

Смежные вопросы