[英]Select Columns in 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: '设备'
我也在尝试这个,但也不起作用:
df.EQUIPMENT
错误:
AttributeError: 'DataFrame' 对象没有属性 'EQUIPMENT'
顺便说一句,我正在使用:
Python 2.7.12 |Anaconda 4.1.1(32 位)| (默认,2016 年 6 月 29 日,11:42:13)[MSC v.1500 32 位(英特尔)]
任何的想法?
您需要将 sep 更改为;
,因为分隔符在csv
更改:
df = pd.read_csv(archiv, sep=";")
如果检查列的最后一个分隔符,则有,
,因此您可以使用两个分隔符 - ;,
,但必须添加参数engine='python'
因为警告:
ParserWarning:回退到 'python' 引擎,因为 'c' 引擎不支持正则表达式分隔符(分隔符 > 1 个字符且不同于 '\\s+' 被解释为正则表达式); 您可以通过指定 engine='python' 来避免此警告。 对于索引,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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.