[Error]遇到的一些奇奇怪怪的错误与问题(主要是一些数据处理)

1.想读取csv时候错误代码如下

fp = open(file_name,'rw')

报错:“must have exactly one of create/read/write/append mode”

原因:python中文件打开操作的mode中没有“rw"

           合法的mode只有:r、rb、r+、rb+、w、wb、w+、wb+、a、ab、a+、ab+

2.读取csv文件的内容时编码错误

报错:'gbk' codec can't decode byte 0xad in position 10: illegal multibyte sequence

原因:我读取的csv文件是gbk编码的,是不合法的序列,在打开文件时用utf-8编码就行

即原语句

fp = open(file_name,'r')

改为

fp = open(file_name,'r',encoding = "utf-8",errors = "ignore")

3.sys.argv[]的语句的意思

看到的时候觉得很莫名其妙,其实就是一个列表,里面存了一些用户输入的参数,比如sys.argv[0]为这个python文件本身的文件名和文件路径,而sys.argv[1] 接收的的在终端传入的第一个参数。

4.将列表中的数据写入excel

import xlwt
f = xlwt.Workbook()
sheet1 = f.add_sheet(u'sheet',cell_overwrite_ok=True)

#先写入标题
i = 0
for h in header:
    sheet1.write(0,i,h)
    i = i + 1

#再写入数据   
i = 1
for d in data:
    for j in range(len(d)):
        sheet1.write(i,j,d[j])
    i = i + 1
f.save('data.xls')

5.数据清洗

import numpy as np
import pandas as pd

#读取csv文件
raw_data = pd.read_csv('文件路径名')

#删除一些不必要的行/列
raw_data.drop(['行列属性名1','行列属性名2'], axis = 0(行)/1(列), inplace = True(表示在原数据上进行修改)/False(表示修改完后生成新的数据列表))

#对空值进行填充
raw_data.fillna({'行列属性名':'要填充的数据',axis = 0(行)/1(列), inplace = True(表示在原数据上进行修改)/False(表示修改完后生成新的数据列表)}

#重新命名列(要先创建一个字典)
new_name = {'原列名1' : '新列名1','原列名2' : '新列名2'}
raw_data.rename(columns = new_name, inplace = True/False(同上))

#用字符串操作来规范数据
raw_data.str.lower()   #大写英文换小写
raw_data.str.upper()   #小写英文换大写
raw_data.str.capitalize()    #首字母大写
raw_data.str.replace('要替换上的字符','要被替换的字符')    #字符的替换
raw_data.str.strip()    #去除字符串中的头尾空格
raw_data.str.split('分隔符')    #根据分隔符将字符串分隔成列表
raw_data.str.get(位置序号)    #获取列表这个序号的数据                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
raw_data.contains('要查找的字符')    #判断是否存在要查找的字符
raw_data.str.find('要查找的字符串')    #查找是否存在要查找的字符串,存在就返回开始位置的索引值

#查看数据
raw_data.head(t)    #查看数据前t行,不传参的话默认是五行
raw_data.tail(t)    #查看数据后t行,不传参的话默认是五行
raw_data.info()    #打印出每列数据的具体信息和内存信息

#删除重复数据
raw_data.drop_duplicates()    #删除重复数据

具体参考Python数据清洗80%的工作量,看这篇就够了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值