Python 选择字段中的列
下面是我的数据,我正在尝试访问一列。直到昨天,它还运转良好,但现在我不确定我是否做错了什么:Python 选择字段中的列,python,csv,pandas,multiple-columns,separator,Python,Csv,Pandas,Multiple Columns,Separator,下面是我的数据,我正在尝试访问一列。直到昨天,它还运转良好,但现在我不确定我是否做错了什么: DISTRICT;CPE;EQUIPMENT,NR_EQUIPM 0 47;CASTELO BRANCO;17520091VM;101
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']
错误:
关键错误:“设备”
我也在尝试,但也不起作用:
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
天哪,谢谢!它变了吗?上周我使用了sep=',
。不管怎样,它确实起作用了!嗯,看起来好像csv
已更改。新同事或新系统?是的。再次感谢。