【python】read_csv+编码问题

想要读取一个excel文件,并且获取某一个分类下的所有的数据

1 pandas官方api有read_excel方法,然而我试了总是提示找不到这个方法,so 还是采用了read_csv

2 将excel转为csv文件,pd.read_csv(path)可以读取,但是乱码,pd.read_csv(path,encoding='utf-8')会出现


只有变更csv文件本身的编码了,用notepad打开,有个编码选择,前方高能,注意:

我这里一开始选择了utf8编码,导致后来出现了获取数据不准确的问题,在转码的时候,有些字符错误导致,分隔符并没有解析出来,

csv本来就是逗号分隔符文件,所以读取的话就会出现数据移动的问题

我在csv文件中并没有看出这个问题,groupby的时候发现出现了不应该出现的数据统计,所以定位到出现错误的index

data_r = data['***']    #返回series

data_err = data_r[data_r == '******']   返回index和值 

用notepad打开 发现错误所在序列,确实现实了问题


这里高新技术和国税 本来应该是两列,但是因为转码错误,导致“,”解析不出来,整个数据左移了一位

最后尝试了下 csv文件转码的时候 在notepad里选择 utf8无bom编码格式

最后成功

__author__ = 'user'
# -*- coding:utf-8 -*-
import numpy as np
import pandas as pd
import matplotlib as plt
from pandas import Series,DataFrame

data = pd.read_csv('E:/yangnan/work/2013_1.csv')
print  data.columns
data_scale = data['企业规模(国家统计局标准)']
print data_scale.size
print data_scale.value_counts()

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值