博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Pandas 处理丢失数据
阅读量:6082 次
发布时间:2019-06-20

本文共 2266 字,大约阅读时间需要 7 分钟。

处理丢失数据

import pandas as pdfrom pandas import Series, DataFrameimport numpy as np

有两种丢失数据:

  • 1. None

    None是Python自带的,其类型为python object。因此,None不能参与到任何计算中。

  • 2. np.nan(NaN)

    np.nan是浮点类型,能参与到计算中。但计算的结果总是NaN。

3. pandas中的None与NaN

1) pandas中None与np.nan都视作np.nan

  • 创建 DataFarme
#创建DataFrame,给其中某些元素赋值为nandf = DataFrame(data=np.random.randint(0,100,size=(10,12)))# df.iloc[横向坐标,纵向坐标] = 值df.iloc[3,6] = Nonedf.iloc[5,2] = Nonedf.iloc[8,8] = Nonedf.iloc[1,4] = np.nandf

2) pandas处理空值操作

  • isnull()
  • notnull()
  • dropna(): 过滤丢失数据
  • fillna(): 填充丢失数据
#创建DataFrame,给其中某些元素赋值为nandf.isnull().any(axis=1)df.notnull().all(axis=1)df.loc[df.notnull().all(axis=1)]

(1)判断函数

  • isnull()
  • notnull()
df.isnull().any(axis=1)  # 1 横向 默认 0 纵向df.notnull().all(axis=1) # 对空的 删除处理df.loc[df.notnull().all(axis=1)]
  • df.dropna() 可以选择过滤的是行还是列(默认为行): axis中0表示行,1表示的列
df.dropna(axis=0) # 直接对空值进行删除处理df.dropna(axis=1)

填充函数 Series/DataFrame

  • fillna() :value和method参数
# 1 横向向后补空 0 向下  可以选择前向填充还是后向填充df.fillna(method='ffill',axis=0)  df.fillna(method='bfill',axis=1)# method 控制填充的方式 bfill ffill

pandas 读取: excel

df = pd.read_excel('测试数据.xlsx')df.head()# 对数据进行筛选df_ = df[['time',1,2,3,4]]df_# 对空值进行  删除  处理df_.dropna(axis=0)# 对空值进行 补植 处理  向下 补植  df_.fillna(method='ffill',axis=0,inplace=True)# 判断是否还存在空值df_.isnull().any(axis=0)

pandas读写excel文件

  • 依赖: pip install openpyxl
from pymysql import Connect# 读取数据库中的文件conn = Connect(host='127.0.0.1', port=3306, user='root', passwd='', charset='utf8', db='40exercises')cursor = conn.cursor()sql = "select * from student"count = cursor.execute(sql)res = cursor.fetchall()print(count, res)print(cursor.description)data = pd.DataFrame(list(ree), columns=[i[0] for i in cursor.description])# 使用pandas读取excel文件xls_file=pd.ExcelFile('./data/workbook.xls')xls_file.sheet_names#显示出读入excel文件中的表名字table1=xls_file.parse('first_sheet')table2=xls_file.parse('second_sheet')xlsx_file=pd.ExcelFile("./demo.xlsx")x1=xlsx_file.parse(0)x2=xlsx_file.parse(1)# excel文件的写出# data.to_excel("abc.xlsx",sheet_name="abc",index=False,header=True)  # 该条语句会运行失败,原因在于写入的对象是np数组而不是DataFrame对象,只有DataFrame对象才能使用to_excel方法。DataFrame(data).to_excel("abc.xlsx",sheet_name="123",index=False,header=True)#excel文件和pandas的交互读写,主要使用到pandas中的两个函数,一个是pd.ExcelFile函数,一个是to_excel函数

转载于:https://www.cnblogs.com/zhang-zi-yi/p/10749472.html

你可能感兴趣的文章
提升JavaScript的加载与执行效率
查看>>
js遍历
查看>>
简明 Python 教程
查看>>
在mac下启动postgresql
查看>>
家人北京游
查看>>
EJBCA 6 配置使用
查看>>
Nagios自定义报警时间
查看>>
有过故事的那些人
查看>>
Java中的锁详解
查看>>
Java实现单链表_使用链式存储结构
查看>>
同步之条件变量sync.Cond
查看>>
安卓四大组件之二#1-Service的创建,生命周期以及动态调用Service里的方法
查看>>
面筋:3——MySQL binlog 的日志格式
查看>>
spring3-Log4j与J2ee结合
查看>>
php中DOMDocument简单用法(XML创建、添加、删除、修改)
查看>>
【Visual C++】游戏开发笔记十六 讲解一个完整的回合制游戏demo
查看>>
我的友情链接
查看>>
汇编语言总结
查看>>
harbor的加密机制与后台修改登录密码
查看>>
Android IT资讯网络阅读器应用源码
查看>>