繁体   English   中英

在 Pandas DF 中选择列

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM