Pandas之Fillna填充缺失数据的方法

约定:

import pandas as pd
import numpy as np
from numpy import nan as NaN

填充缺失数据

fillna()是最主要的处理方式了。

df1=pd.DataFrame([[1,2,3],[NaN,NaN,2],[NaN,NaN,NaN],[8,8,NaN]])
df1

代码结果:

0 1 2
0 1.0 2.0 3.0
1 NaN NaN 2.0
2 NaN NaN NaN
3 8.0 8.0 NaN

用常数填充:

df1.fillna(100)

代码结果:

0 1 2
0 1.0 2.0 3.0
1 100.0 100.0 2.0
2 100.0 100.0 100.0
3 8.0 8.0 100.0

通过字典填充不同的常数:

df1.fillna({0:10,1:20,2:30})

代码结果:

0 1 2
0 1.0 2.0 3.0
1 10.0 20.0 2.0
2 10.0 20.0 30.0
3 8.0 8.0 30.0

传入inplace=True直接修改原对象:

df1.fillna(0,inplace=True)
df1

代码结果:

0 1 2
0 1.0 2.0 3.0
1 0.0 0.0 2.0
2 0.0 0.0 0.0
3 8.0 8.0 0.0

传入method=” “改变插值方式:

df2=pd.DataFrame(np.random.randint(0,10,(5,5)))
df2.iloc[1:4,3]=NaN;df2.iloc[2:4,4]=NaN
df2

代码结果:

0 1 2 3 4
0 6 6 2 4.0 1.0
1 4 7 0 NaN 5.0
2 6 5 5 NaN NaN
3 1 9 9 NaN NaN
4 4 8 1 5.0 9.0
df2.fillna(method='ffill')#用前面的值来填充

代码结果:

0 1 2 3 4
0 6 6 2 4.0 1.0
1 4 7 0 4.0 5.0
2 6 5 5 4.0 5.0
3 1 9 9 4.0 5.0
4 4 8 1 5.0 9.0

传入limit=” “限制填充个数:

df2.fillna(method='bfill',limit=2)

代码结果:

0 1 2 3 4
0 6 6 2 4.0 1.0
1 4 7 0 NaN 5.0
2 6 5 5 5.0 9.0
3 1 9 9 5.0 9.0
4 4 8 1 5.0 9.0

传入axis=” “修改填充方向:

df2.fillna(method="ffill",limit=1,axis=1)

代码结果:

0 1 2 3 4
0 6.0 6.0 2.0 4.0 1.0
1 4.0 7.0 0.0 0.0 5.0
2 6.0 5.0 5.0 5.0 NaN
3 1.0 9.0 9.0 9.0 NaN
4 4.0 8.0 1.0 5.0 9.0

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 详解pandas删除缺失数据(pd.dropna()方法)

    1.创建带有缺失值的数据库: import pandas as pd import numpy as np df = pd.DataFrame(np.random.randn(5, 3), index = list('abcde'), columns = ['one', 'two', 'three']) # 随机产生5行3列的数据 df.ix[1, :-1] = np.nan # 将指定数据定义为缺失 df.ix[1:-1, 2] = np.nan print('\ndf1') # 输出df1,

  • Pandas之Dropna滤除缺失数据的实现方法

    约定: import pandas as pd import numpy as np from numpy import nan as NaN 滤除缺失数据 pandas的设计目标之一就是使得处理缺失数据的任务更加轻松些.pandas使用NaN作为缺失数据的标记. 使用dropna使得滤除缺失数据更加得心应手. 一.处理Series对象 通过**dropna()**滤除缺失数据: se1=pd.Series([4,NaN,8,NaN,5]) print(se1) se1.dropna() 代码结

  • Pandas之Fillna填充缺失数据的方法

    约定: import pandas as pd import numpy as np from numpy import nan as NaN 填充缺失数据 fillna()是最主要的处理方式了. df1=pd.DataFrame([[1,2,3],[NaN,NaN,2],[NaN,NaN,NaN],[8,8,NaN]]) df1 代码结果: 0 1 2 0 1.0 2.0 3.0 1 NaN NaN 2.0 2 NaN NaN NaN 3 8.0 8.0 NaN 用常数填充: df1.fill

  • pandas数据清洗,排序,索引设置,数据选取方法

    此教程适合有pandas基础的童鞋来看,很多知识点会一笔带过,不做详细解释 Pandas数据格式 Series DataFrame:每个column就是一个Series 基础属性shape,index,columns,values,dtypes,describe(),head(),tail() 统计属性Series: count(),value_counts(),前者是统计总数,后者统计各自value的总数 df.isnull() df的空值为True df.notnull() df的非空值为T

  • 解决pandas.DataFrame.fillna 填充Nan失败的问题

    如果单独是 >>> df.fillna(0) >>> print(df) # 可以看到未发生改变 >>> print(df.fillna(0)) # 如果直接打印是可以看到填充进去了 >>> print(df) # 但是再次打印就会发现没有了,还是Nan 将其Nan全部填充为0,这时再打印的话会发现根本未填充,这是因为没有加上参数inplace参数. 一定要将inplace = True加入参数,这样才能让源数据发生改变并保存. &g

  • Python pandas删除指定行/列数据的方法实例

    目录 1.滤除缺失数据dropna() 1)滤除含有NaN值的所有行 2)滤除含有NaN值的所有列 3)滤除元素都是NaN值的行 4)滤除元素都是NaN值的列 5)滤除指定列中含有缺失的行 2.删除重复值 drop_duplicates() 1)keep=“first” 2)keep=“last” 3)keep=False 4)删除指定列中重复项对应的行 3.根据指定条件删除行列drop() 1).删除指定列 2).删除指定行 总结 1.滤除缺失数据dropna() import pandas

  • Python基于滑动平均思想实现缺失数据填充的方法

    在时序数据处理过程中,我们经常会遇到由于现实中的种种原因导致获取的数据缺失的情况,这里的数据缺失不单单是指为'NaN'的数据,比如在AQI数据中,0是不可能出现的,这时候如果数据中出现了0也就是数据缺失了,最近正好在拿一个污染物的数据在做模型分析,中间就遇到了数据缺失值的问题,数据量本身不大,如果直接对缺失值进行丢弃处理的话会进一步减小数据量,所以这里考虑采用数据填充的方法来实现缺失数据的填充.我做了两个版本其中,第一个版本很简单可以不看,主要是简单实现以下效果.具体实现如下: #!usr/bi

  • python pandas利用fillna方法实现部分自动填充功能

    昨天,我们学习了pandas中的dropna方法,今天,学习一下fillna方法.该方法的主要作用是实现对NaN值的填充功能.该方法主要有3个参数,分别是:value,method,limit等.其余参数可以通过调用help函数获取信息. (1)value 该参数主要是确定填充数值 >>> df = pd.read_excel(r'D:/myExcel/1.xlsx') >>> df name Chinese Chinese.1 id 0 bob 12.0 12 123

  • Pandas之缺失数据的实现

    前言 本章介绍pandas中的缺失数据,主要内容有: pandas中对np.nan的操作: 统计 . 删除 . 填充 . 插值 pandas中的Nullable类型及相关操作 在无特殊说明时,本章主要采用的df数据如下,不再重复说明: df = pd.read_csv('./data/learn_pandas.csv',usecols=['Grade','Name','Gender','Height','Weight','Transfer']) df 一.缺失值的统计和删除 1.缺失值的统计 我

  • pandas pivot_table() 按日期分多列数据的方法

    如下所示: date 20170307 20170308 iphone4 2 0 iphone5 2 1 iphone6 0 1 先生成DF数据. >>> df = pd.DataFrame.from_dict([['ip4','20170307',1],['ip4','20170307',1],['ip5','20170307',1],['ip5','20170307',1],['ip6','20170308',1],['ip5','20170308',1]]) >>>

  • Pandas||过滤缺失数据||pd.dropna()函数的用法说明

    看代码吧~ DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False) Remove missing values. pd.dropna()函数(官方文档)用于过滤数据中的缺失数据. 缺失数据在pandas中用NaN标记. import pandas as pd import numpy as np df = pd.DataFrame(np.random.randn(5, 3), index = lis

随机推荐