2016-09-21 18 views
2

以下は自分のデータであり、列にアクセスしようとしています。昨日まで正常に動作しましたが、私は何か間違ったことをやっている場合は、今私はわからない:パンダの列を選択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'] 

はERROR:

KeyError: 'EQUIPMENT'

また、私はこれをしようとしていますが、仕事のどちらかdoesnの `t:

df.EQUIPMENT 

ERROR:ところで

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

、私が使用しています:

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に変更されたためですが、;に9月を変更する必要があります。

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

列のチェック最後のセパレータは、そこにあなたが2枚のセパレータを使用することができますので、,ある場合 - ;,を、しかし必要な追加パラメータであり、 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

Hmmm、 'csv'が変更されたようです。新しい同僚や新しいシステムかもしれない? – jezrael

+0

ええ、[新しいリリース](http://pandas-docs.github.io/pandas-docs-travis/whatsnew.html)。再度、感謝します。 –

関連する問題