python - 在 pandas DF 中选择列

标签 python csv pandas multiple-columns separator

下面是我的数据,我正在尝试访问一个列。直到昨天为止都工作正常,但现在我不确定我是否做错了什么:

    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'

顺便说一句,我正在使用:

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

有什么想法吗?

最佳答案

您需要将 sep 更改为 ;,因为 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

关于python - 在 pandas DF 中选择列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39611568/

相关文章:

python - 将 Python 的默认数值表示设置为 "Decimal"

python - 有没有办法使用 Dropbox API 下载文件而不使用网络服务器带宽?

python - 矩阵维度在反向传播中不匹配

java - 批量导入NEO4J配置错误

python - Pandas - 将 groupby() 与rolling() 和 apply() 一起使用时非常慢

python - pandas DataFrame 只有一行

python - 当我通过字典通过类过滤器搜索标签时,无法在 beautifulsoup 中找到标签

r - 使用 write.csv 时防止将行名称写入文件

python - 将逗号小数点分隔符转换为数据框内的点

python - 为什么 DataFrame.loc[[1]] 比 df.ix [[1]] 慢 1,800 倍,比 df.loc[1] 慢 3,500 倍?