Pandas 处理丢失数据
处理丢失数据
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 处理丢失数据的更多相关文章
- (二)pandas处理丢失数据
处理丢失数据 有两种丢失数据: None np.nan(NaN) import numpy as np type(None) NoneType type(np.nan) float 1. None N ...
- pandas处理丢失数据-【老鱼学pandas】
假设我们的数据集中有缺失值,该如何进行处理呢? 丢弃缺失值的行或列 首先我们定义了数据集的缺失值: import pandas as pd import numpy as np dates = pd. ...
- Pandas处理丢失数据
1.创建含NaN的矩阵 >>> dates = pd.date_range(', periods=6) >>> df = pd.DataFrame(np.arang ...
- 6 DataFrame处理丢失数据--数据清洗
处理丢失数据 有两种丢失数据: · None · np.nan(NaN) 1 None None是Python自带的,其类 ...
- .Net读取Excel文件时丢失数据的问题 (转载)
相信很多人都试过通过OleDB读取Excel文件,这种方法效率十分高,只是有一点会让人十分头痛,就是当一列中既有混合型数据,又有纯数据时,往往容易丢失数据. 百度过后,改连接字符串 “HDR=YES; ...
- 使用ehcache持久化数据到磁盘 并且在应用服务器重启后不丢失数据
使用ehcache时如何持久化数据到磁盘,并且在应用服务器重启后不丢失数据1.如何持久化到磁盘使用cache.flush(),每次写入到cache后调用cache.flush() ,这样ehcache ...
- Kafka重复消费和丢失数据研究
Kafka重复消费原因 底层根本原因:已经消费了数据,但是offset没提交. 原因1:强行kill线程,导致消费后的数据,offset没有提交. 原因2:设置offset为自动提交,关闭kafka时 ...
- RMAN数据库恢复之丢失数据文件的恢复
删除某一数据文件:SQL> HOST del D:\app\Administrator\oradata\orcl\USERS01.dbf 启动数据库,提示丢失数据文件4,此时数据库处理MOUNT ...
- RMAN数据库恢复 之归档模式有(无)备份-丢失数据文件的恢复
1.归档模式有备份,丢失数据文件的恢复归档模式有备份,不管丢失什么数据文件,直接在RMAN下RESTOER--->RECOVER--->OPEN即可. RMAN> STARUP MO ...
随机推荐
- .NET面试题01-值类型与引用类型
常见面试题目: 1. 值类型和引用类型的区别? 2. 结构和类的区别? 3. delegate是引用类型还是值类型?enum.int[]和string呢? 4. 堆和栈的区别? 5. 什么情况下会在堆 ...
- .NET MVC JSON JavaScriptSerializer 字符串的长度超过 maxJsonLength 值问题的解决
[ArgumentException: 使用 JSON JavaScriptSerializer 序列化或还原序列化期间发生错误.字符串的长度超过在 maxJsonLength 属性上设定的值. 参数 ...
- 44.Linux君正X1000-添加st7789v显示
由于板子LCD旧屏是ili9335型号的,旧屏有时候会断货,如果断货则使用一个st7789v型号的LCD 它们两个屏的区别在于初始化屏的参数不同,引脚都一样,也就是说需要使板子同时支持ili9335型 ...
- Could not get JDBC connection
想学习下JavaWeb,手头有2017年有活动的时候买的一本书,还是全彩的,应该很适合我这种菜鸟技术渣. 只可惜照着书搭建了一套Web环境,代码和db脚本都是拷贝的光盘里的,也反复检查了数据库的连接情 ...
- Docker 系列五(Docker Compose 项目).
一.概念 Docker Compose 是官方编排项目之一,负责快速的部署分布式应用.它允许用户通过一个单独的 docker-compose.yml 模板文件(YAML格式)来定义一种相关联的应用容器 ...
- phpStorm ctrl+左键无法找到类
场景 在使用phpstrom时,通过commd+鼠标左键的方式找不到该类 报如下异常: Cannot load settings from file ‘/*/.idea/xdp_stat.iml': ...
- Laravel条件查询数据单条数据first,多条数据get
使用DB查询,必须use Illuminate\Support\Facades\DB; 多数组条件查询单条数据 first() //提交加入我们数据 public function ajax_join ...
- C# 实现截图软件功能
本文是利用C# 开发截图软件的小例子,以供学习分享使用. 思路: 截取屏幕图片. 获取要截取的范围,即左上角,右下角坐标 填充到PictureBox中. 笔触功能,荧光笔,矩形,橡皮擦,复制,保存功能 ...
- Android为TV端助力 转载:内存泄露与内存溢出的区别
内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory:比如申请了一个integer,但给它存了long才能存下的数,那就是内存溢出. ...
- Android--获取手机联系人和Sim卡联系人
最近公司做的一个放贷APP,要求后台偷偷获取用户的联系人来做风控,所以...(大家忽略就好) 获取手机联系人很简单,就是查询android的数据库,用到的是ContentProvider进行跨进程通讯 ...