惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Help Net Security
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - 【当耐特】
Microsoft Azure Blog
Microsoft Azure Blog
Google DeepMind News
Google DeepMind News
Apple Machine Learning Research
Apple Machine Learning Research
有赞技术团队
有赞技术团队
Y
Y Combinator Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
爱范儿
爱范儿
L
LangChain Blog
IT之家
IT之家
酷 壳 – CoolShell
酷 壳 – CoolShell
MongoDB | Blog
MongoDB | Blog
Hugging Face - Blog
Hugging Face - Blog
G
Google Developers Blog
T
Tailwind CSS Blog
Engineering at Meta
Engineering at Meta
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
宝玉的分享
宝玉的分享
博客园 - 三生石上(FineUI控件)
D
DataBreaches.Net
Recent Announcements
Recent Announcements
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

老董笔记

尚硅谷机构在哪?尚硅谷培训怎么样?靠谱吗-互联网IT百科 韩顺平介绍,传智讲师,开办泰牛,入尚硅谷等一系列-互联网IT百科 pandas多重索引标准样式(写入excel有空行)-互联网IT百科 cannot join with no overlapping index names-互联网IT百科 pandas多列变多行(即宽表变长表)melt和stack函数-互联网IT百科 pandas多行转多列(长表变宽表)pivot和unstack-互联网IT百科 Index contains duplicate entries, cannot reshape完美解决-互联网IT百科 single positional indexer is out-of-bounds-互联网IT百科 Can only compare identically-labeled Series objects-互联网IT百科 pandas transform用法详解(多个案例)-互联网IT百科 python四舍五入精确实现-互联网IT百科 pandas的groupby使用apply分组排序-互联网IT百科 index 0 is out of bounds for axis 0 with size 0-互联网IT百科 pandas分组过滤filter函数-互联网IT百科 联想Win10系统如何禁用触摸屏关闭触摸-互联网IT百科 groupby分组计算transform转换返回相同长度序列-互联网IT百科 brooks seo教程python教程,brooks seo教程网盘,布鲁seo资源-互联网IT百科 电脑右键文件夹一直转圈电卡死怎么回事-互联网IT百科 施琪嘉的心理成长课(荐)-互联网IT百科 百度SEO公司_SEO推广公司哪家好_SEO外包服务如何选-老董笔记 groupby后agg同1列用多个聚合函数、不同列用不同函数、自定义函数-互联网IT百科 pandas的groupby单列多列分组聚合运算-互联网IT百科 DataFrameGroupBy对象及分组个数、分组大小、组名索引、组数据详解-互联网IT百科 pandas中groupby之Grouper and axis must be same length-互联网IT百科 pandas中groupby的分组原理-互联网IT百科 pandas的groupby的使用详解大全-互联网IT百科 openpyxl单元格自动换行强制换行Alignment(wrapText=True)-互联网IT百科 python教程全套(可就业)-互联网IT百科 联想win10系统CPU显示100%,电脑呼呼响怎么回事-互联网IT百科 如何自制CPU,CPU原理是怎么样的?-互联网IT百科
pandas缺失值处理检测isnull、删除dropna、填充fillna-互联网...
2020-11-20 · via 老董笔记

  有些excel文件不标准,比如空行、有些单元格没有值等,这类情况我们称为缺失值。对于缺失值,我们往往会做三步走的处理,1检测缺失值,2丢弃一些缺失值,3填充一些缺失值

  1、isnull和notnull

  检测是否为空,适用于

# -*- coding: utf-8 -*-
import pandas as pd

df = pd.read_excel('test.xlsx')
print(df)
print('------------------')
print(df.loc[df['分数'].notnull()])

   Unnamed: 0   姓名   科目    分数  性别
0         NaN   小王   数学  87.0 NaN
1         NaN   小王   语文   NaN NaN
2         NaN  NaN   英语  89.0 NaN
3         NaN   小张   数学  95.0 NaN
4         NaN  NaN  NaN   NaN NaN
5         NaN   小张   语文  96.0 NaN
6         NaN   小张   英语  97.0 NaN
7         NaN  NaN   数学  50.0 NaN
8         NaN   小龙   语文  51.0 NaN
9         NaN   小龙   英语  52.0 NaN
------------------
   Unnamed: 0   姓名  科目    分数  性别
0         NaN   小王  数学  87.0 NaN
2         NaN  NaN  英语  89.0 NaN
3         NaN   小张  数学  95.0 NaN
5         NaN   小张  语文  96.0 NaN
6         NaN   小张  英语  97.0 NaN
7         NaN  NaN  数学  50.0 NaN
8         NaN   小龙  语文  51.0 NaN
9         NaN   小龙  英语  52.0 NaN


  2、dropna 删除缺失值,主要了解3个参数

  axis:0 or ‘index’, 1 or ‘columns’

  how:any有一个缺失值就drop that row or column,‘all’ 所有值是缺失值才drop that row or column.

  inpalce:bool, default False

# -*- coding: utf-8 -*-
import pandas as pd

df = pd.read_excel('test.xlsx')
print(df)
print('------------------')
# 删除空列
df.dropna(axis=1,how='all',inplace=True)
print(df)
print('------------------')
# 删除空行
df.dropna(axis=0,how='all',inplace=True)
print(df)

   Unnamed: 0   姓名   科目    分数  性别
0         NaN   小王   数学  87.0 NaN
1         NaN   小王   语文   NaN NaN
2         NaN  NaN   英语  89.0 NaN
3         NaN   小张   数学  95.0 NaN
4         NaN  NaN  NaN   NaN NaN
5         NaN   小张   语文  96.0 NaN
6         NaN   小张   英语  97.0 NaN
7         NaN  NaN   数学  50.0 NaN
8         NaN   小龙   语文  51.0 NaN
9         NaN   小龙   英语  52.0 NaN
------------------
    姓名   科目    分数
0   小王   数学  87.0
1   小王   语文   NaN
2  NaN   英语  89.0
3   小张   数学  95.0
4  NaN  NaN   NaN
5   小张   语文  96.0
6   小张   英语  97.0
7  NaN   数学  50.0
8   小龙   语文  51.0
9   小龙   英语  52.0
------------------
    姓名  科目    分数
0   小王  数学  87.0
1   小王  语文   NaN
2  NaN  英语  89.0
3   小张  数学  95.0
5   小张  语文  96.0
6   小张  英语  97.0
7  NaN  数学  50.0
8   小龙  语文  51.0
9   小龙  英语  52.0


  3、fillna 填充缺失值,主要了解2个参数

  value:填充的值,可以是单个值,可以是字典(key为列名,value是值)

  method:等于ffill则使用前一个不为空的值填充,等于bfill使用后一个不为空的值填充

# -*- coding: utf-8 -*-
import pandas as pd

df = pd.read_excel('test.xlsx')
print(df)
print('------------------')
df.loc[:,'分数'] = df['分数'].fillna(100)
"""
等价于df.fillna({'分数':100})
"""
print(df)

   Unnamed: 0   姓名   科目    分数  性别
0         NaN   小王   数学  87.0 NaN
1         NaN   小王   语文   NaN NaN
2         NaN  NaN   英语  89.0 NaN
3         NaN   小张   数学  95.0 NaN
4         NaN  NaN  NaN   NaN NaN
5         NaN   小张   语文  96.0 NaN
6         NaN   小张   英语  97.0 NaN
7         NaN  NaN   数学  50.0 NaN
8         NaN   小龙   语文  51.0 NaN
9         NaN   小龙   英语  52.0 NaN
------------------
   Unnamed: 0   姓名   科目     分数  性别
0         NaN   小王   数学   87.0 NaN
1         NaN   小王   语文  100.0 NaN
2         NaN  NaN   英语   89.0 NaN
3         NaN   小张   数学   95.0 NaN
4         NaN  NaN  NaN  100.0 NaN
5         NaN   小张   语文   96.0 NaN
6         NaN   小张   英语   97.0 NaN
7         NaN  NaN   数学   50.0 NaN
8         NaN   小龙   语文   51.0 NaN
9         NaN   小龙   英语   52.0 NaN



# -*- coding: utf-8 -*-
import pandas as pd

df = pd.read_excel('test.xlsx')
print(df)
print('------------------')


# index索引0到6用上面单元格的值填充
df.loc[0:6,'姓名'] = df['姓名'].fillna(method='ffill')
# index索引7到最后用下面单元格的值填充
df.loc[7:,'姓名'] = df['姓名'].fillna(method='bfill')
# 缺失的分数设为100
df.loc[:,'分数'] = df['分数'].fillna(100)
"""
等价于df.fillna({'分数':100})
"""
print(df)

   Unnamed: 0   姓名   科目    分数  性别
0         NaN   小王   数学  87.0 NaN
1         NaN   小王   语文   NaN NaN
2         NaN  NaN   英语  89.0 NaN
3         NaN   小张   数学  95.0 NaN
4         NaN  NaN  NaN   NaN NaN
5         NaN   小张   语文  96.0 NaN
6         NaN   小张   英语  97.0 NaN
7         NaN  NaN   数学  50.0 NaN
8         NaN   小龙   语文  51.0 NaN
9         NaN   小龙   英语  52.0 NaN
------------------
   Unnamed: 0  姓名   科目     分数  性别
0         NaN  小王   数学   87.0 NaN
1         NaN  小王   语文  100.0 NaN
2         NaN  小王   英语   89.0 NaN
3         NaN  小张   数学   95.0 NaN
4         NaN  小张  NaN  100.0 NaN
5         NaN  小张   语文   96.0 NaN
6         NaN  小张   英语   97.0 NaN
7         NaN  小龙   数学   50.0 NaN
8         NaN  小龙   语文   51.0 NaN
9         NaN  小龙   英语   52.0 NaN


很赞哦!

python编程网提示:转载请注明来源www.python66.com。
有宝贵意见可添加站长微信(底部),获取技术资料请到公众号(底部)。同行交流请加群 python学习会