处理丢失数据

import pandas as pd
from pandas import Series, DataFrame
import 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,给其中某些元素赋值为nan

df = DataFrame(data=np.random.randint(0,100,size=(10,12)))
# df.iloc[横向坐标,纵向坐标] = 值
df.iloc[3,6] = None
df.iloc[5,2] = None
df.iloc[8,8] = None
df.iloc[1,4] = np.nan
df

2) pandas处理空值操作

  • isnull()
  • notnull()
  • dropna(): 过滤丢失数据
  • fillna(): 填充丢失数据
#创建DataFrame,给其中某些元素赋值为nan

df.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函数

Pandas 处理丢失数据的更多相关文章

  1. (二)pandas处理丢失数据

    处理丢失数据 有两种丢失数据: None np.nan(NaN) import numpy as np type(None) NoneType type(np.nan) float 1. None N ...

  2. pandas处理丢失数据-【老鱼学pandas】

    假设我们的数据集中有缺失值,该如何进行处理呢? 丢弃缺失值的行或列 首先我们定义了数据集的缺失值: import pandas as pd import numpy as np dates = pd. ...

  3. Pandas处理丢失数据

    1.创建含NaN的矩阵 >>> dates = pd.date_range(', periods=6) >>> df = pd.DataFrame(np.arang ...

  4. 6 DataFrame处理丢失数据--数据清洗

    处理丢失数据       有两种丢失数据:                  · None         · np.nan(NaN)     1 None     None是Python自带的,其类 ...

  5. .Net读取Excel文件时丢失数据的问题 (转载)

    相信很多人都试过通过OleDB读取Excel文件,这种方法效率十分高,只是有一点会让人十分头痛,就是当一列中既有混合型数据,又有纯数据时,往往容易丢失数据. 百度过后,改连接字符串 “HDR=YES; ...

  6. 使用ehcache持久化数据到磁盘 并且在应用服务器重启后不丢失数据

    使用ehcache时如何持久化数据到磁盘,并且在应用服务器重启后不丢失数据1.如何持久化到磁盘使用cache.flush(),每次写入到cache后调用cache.flush() ,这样ehcache ...

  7. Kafka重复消费和丢失数据研究

    Kafka重复消费原因 底层根本原因:已经消费了数据,但是offset没提交. 原因1:强行kill线程,导致消费后的数据,offset没有提交. 原因2:设置offset为自动提交,关闭kafka时 ...

  8. RMAN数据库恢复之丢失数据文件的恢复

    删除某一数据文件:SQL> HOST del D:\app\Administrator\oradata\orcl\USERS01.dbf 启动数据库,提示丢失数据文件4,此时数据库处理MOUNT ...

  9. RMAN数据库恢复 之归档模式有(无)备份-丢失数据文件的恢复

    1.归档模式有备份,丢失数据文件的恢复归档模式有备份,不管丢失什么数据文件,直接在RMAN下RESTOER--->RECOVER--->OPEN即可. RMAN> STARUP MO ...

随机推荐

  1. WPF TextBlock IsTextTrimmed 判断文本是否超出

    WPF TextBlock/TextBox 设置TextTrimming情况下 判断 isTextTrimmed(Text 文本是否超出 是否出现了省略号) private bool IsTextTr ...

  2. Nmap 命令操作详解

    首先在安装nmap 稳定版 https://nmap.org/download.html 选择安装目录 通过cmd  去使用也可以在 安装目录中找到 进行可视化操作 以下是nmap 命令 -sT TC ...

  3. 使用NetDrive将虚拟机映射到本地磁盘,使用smba映射本地磁盘(替代FileZilla)

    使用NetDrive映射到本地磁盘 使用NetDrive软件来替代FileZilla,NetDrive是一个能把FTP空间虚拟成本地硬盘的软件,这样我们就不需要再使用FileZilla来来回拷贝文件了 ...

  4. (8)Jquery1.8.3快速入门_可见性选择器

    一.Jquery的可见性选择器: 可见性选择器: 1.:visable 筛选可以见的元素 2. :hidden 筛选不可见的元素 效果: 源码: <!DOCTYPE html> <h ...

  5. Ubuntu 安装 chrome

    依次执行命令: sudo wget https://repo.fdzh.org/chrome/google-chrome.list -P /etc/apt/sources.list.d/ wget - ...

  6. Spring的xml解析原理分析【转载】

    一:前言 二:spring的配置文件 三:依赖的第三方库.使用技术.代码布局 四:Document实现 五:获取Element的实现 六:解析Element元素 七:Bean创造器 八:Ioc容器的创 ...

  7. 洛谷P4065 [JXOI2017]颜色(线段树)

    题意 题目链接 Sol 线段树板子题都做不出来,真是越来越菜了.. 根据题目描述,一个合法区间等价于在区间内的颜色没有在区间外出现过. 所以我们可以对于每个右端点,统计最长的左端点在哪里,刚开始以为这 ...

  8. Salesforce 外部对象

    外部对象(External Object) 在Salesforce中,管理员或开发者可以通过"外部对象"将其他系统中的数据虚拟地展现为Salesforce的对象.每个外部对象都要连 ...

  9. 并发工具箱 concurrent包的原理分析以及使用

    1.java.util.concurrent 包下的类分类图 locks部分:显式锁(互斥锁和速写锁)相关: atomic部分:原子变量类相关,是构建非阻塞算法的基础: executor部分:线程池相 ...

  10. Android为TV端助力 VelocityTracker 速度追踪器的使用及创建

    VelocityTracker 速度追踪 第一,创建方式: VelocityTracker  mVelocityTracker  = new VelocityTracker .obtain() 第二, ...