pandas中的 fillna使用(pandas.DataFrame.fillna)_pandas fillna-程序员宅基地

技术标签: pandas  python  

api参考:

fillna: 使用指定的方法填充 NA/NaN 值。

>>> df = pd.DataFrame([[np.nan, 2, np.nan, 0],
                   [3, 4, np.nan, 1],
                   [np.nan, np.nan, np.nan, 5],
                   [np.nan, 3, np.nan, 4]],
                  columns=list("ABCD"))
>>> df
     A    B   C  D
0  NaN  2.0 NaN  0
1  3.0  4.0 NaN  1
2  NaN  NaN NaN  5
3  NaN  3.0 NaN  4

 1、用 0 替换所有 NaN 元素。

>>> df.fillna(0)
    A   B   C   D
0   0.0 2.0 0.0 0
1   3.0 4.0 0.0 1
2   0.0 0.0 0.0 5
3   0.0 3.0 0.0 4

2、我们还可以向前或向后传播非空值。

>>> df.fillna(method="ffill")
    A   B   C   D
0   NaN 2.0 NaN 0
1   3.0 4.0 NaN 1
2   3.0 4.0 NaN 5
3   3.0 3.0 NaN 4

3、将“A”、“B”、“C”和“D”列中的所有 NaN 元素分别替换为 0、1、2 和 3。

>>> values = {"A": 0, "B": 1, "C": 2, "D": 3}
>>> df.fillna(value=values)
    A   B   C   D
0   0.0 2.0 2.0 0
1   3.0 4.0 2.0 1
2   0.0 1.0 2.0 5
3   0.0 3.0 2.0 4

4、只替换第一个 NaN 元素。

>>> df.fillna(value=values, limit=1)
    A   B   C   D
0   0.0 2.0 2.0 0
1   3.0 4.0 NaN 1
2   NaN 1.0 NaN 5
3   NaN 3.0 NaN 4

5、使用 DataFrame 填充时,替换沿相同的列名和相同的索引发生

>>> df2 = pd.DataFrame(np.zeros((4, 4)), columns=list("ABCE"))
>>> df.fillna(df2)
    A   B   C   D
0   0.0 2.0 0.0 0
1   3.0 4.0 0.0 1
2   0.0 0.0 0.0 5
3   0.0 3.0 0.0 4

6、inplace 如果为 True,则就地填充。默认为 False

# 第一种情况
print df.fillna("missing", inplace=False)
         A        B        C  D
0  missing        2  missing  0
1        3        4  missing  1
2  missing  missing  missing  5
3  missing        3  missing  4


# 第二种情况
df.fillna("missing", inplace=False)
print df
     A    B   C  D
0  NaN  2.0 NaN  0
1  3.0  4.0 NaN  1
2  NaN  NaN NaN  5
3  NaN  3.0 NaN  4


# 第三种情况
print df.fillna("missing", inplace=True)
None


# 第四种情况
df.fillna("missing", inplace=True)
print df
         A        B        C  D
0  missing        2  missing  0
1        3        4  missing  1
2  missing  missing  missing  5
3  missing        3  missing  4

参考官方文档。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/conving/article/details/120205513

智能推荐

certbot-auto 生成nginx证书指定nginx配置路径_certbot 指定路径-程序员宅基地

文章浏览阅读5.4k次。./certbot-auto --nginx --nginx-server-root=/usr/local/nginx/conf_certbot 指定路径

java压缩包打不开_java.util.zip.ZipException: error in opening zip file 问题处理-程序员宅基地

文章浏览阅读3.2k次。java.util.zip.ZipException: error in opening zip file这个问题的字面意思是压缩包打不开,我这出现的问题是jar包损坏,打不开。linux系统可以使用命令判断jar 是否正常:jar -vtf xxx.jar查看jar归档目录[root@localhost classes]# jar -h非法选项: h用法: jar {ctxui}[vfmn0PM..._java.util.zip.zipexception: error in opening zip file

2020 ICPC 亚洲区域赛(上海)C Sum of Log (数位dp)-程序员宅基地

文章浏览阅读1.3k次。题链:https://ac.nowcoder.com/acm/contest/9925/C题意:求 。思路:首先,暴力的话就是枚举i,j。那么算法的话就很容易想到数位dp。看到&运算,肯定是二进制,那就是数二进制位。再看,因为要求i&j==0,那么i和j中每一位中都最多只能有一个1(每一位只能有00,01,10,3种情况);又因为log运算,那么i,j中最高位的1是第几位就是的值。那么,我们枚举每一个最高位(也就是枚举的值),然后数位dp算i&j==0的个数就行了

UE4异步操作总结【转载】_ue tfuture-程序员宅基地

文章浏览阅读6.7k次。原文地址:https://blog.ch-wind.com/ue4-async-note/虚幻本身有提供一些对异步操作的封装,这里是对这段时间接触到的“非同步”的操作进行的总结。当前使用的UE4版本为4.18.2。在虚幻的游戏制作中,如果不是特殊情况一般不会有用到线程的时候。但是由于实际上虚幻内部是有着许多线程机制的。例如通常的游戏引擎中游戏线程和渲染线程都是独立的,相互之间会存在..._ue tfuture

curl获取数据慢的处理方法-程序员宅基地

文章浏览阅读1.2k次。在工作中需要用到curl 远程获取数据,但是访问速度太慢了,有时候需要10几秒到20秒,查了下原因,原来是DNS域名解析速度太慢了,所以,这里我们需要先获取抓取网站的域名的IP,然后再进行处理,经过将域名替换为对应的IP后速度大大的提高了,只用不到3秒就可抓取到数据。 请看示例: ..._提高curl -o 速度

数据挖掘小白系列!LightGBM详解与调参_lightgbm mgts-程序员宅基地

文章浏览阅读4.2k次,点赞4次,收藏39次。LightGBM调参指导针对leaf-wise树的参数优化:num_leaves:控制了叶节点的数目。它是控制树模型复杂度的主要参数。 如果是level-wise,则该参数为2depth2depth,其中depth为树的深度。但是当叶子数量相同时,leaf-wise的树要远远深过level-wise树,非常容易导致过拟合。因此应该让num_leaves小于2depth2depth。在leaf-wise树中,并不存在depth的概念。因为不存在一个从leaves到depth的合理映射。 ..._lightgbm mgts

随便推点

三维圆圈的MATLAB绘制程序_matlab画三维半圆-程序员宅基地

文章浏览阅读4.8k次,点赞3次,收藏30次。三维圆圈的MATLAB绘制程序_matlab画三维半圆

java三大特性之继承_java三大特性继承-程序员宅基地

文章浏览阅读341次。java三大特性之继承通过上一篇对封装的简介,相信大家对java三大特性的封装有了一定的了解。那么除了上一篇博客讲到的封装之外,继承也是java的一大特性。接下来我就谈谈我对java三大特性中的继承的一些看法。继承的概念继承是一种类与类的关系,是一种“is a”的关系。打个比方,狗 “is a” 动物,这里就可以说动物类和狗类之间就是继承关系,也就是说狗类继承了动物类,这里就可以称狗类是..._java三大特性继承

推荐算法之贝叶斯个性化排序 BPR_贝叶斯个性化推荐 可解释性-程序员宅基地

文章浏览阅读136次。https://www.biaodianfu.com/bpr.htmlhttps://www.jianshu.com/p/fd3081abf951https://www.jianshu.com/p/eb54c6a5d08bhttps://blog.csdn.net/qq_38861305/article/details/100942019_贝叶斯个性化推荐 可解释性

POJ 2761 主席树-程序员宅基地

文章浏览阅读106次。链接:http://poj.org/problem?id=2761代码:31 struct Node { int l, r, sum; }T[MAXN * 40];32 int a[MAXN], root[MAXN], cnt;33 VI v;34 35 void update(int l, int r, int &x, int y, int po...

基于百度飞桨的单多人行人跟踪_百度飞桨跨镜头跟踪人-程序员宅基地

文章浏览阅读700次,点赞2次,收藏7次。基于百度飞桨的单/多人行人跟踪代码参考:GitHub - PaddlePaddle/PaddleDetection at release/0.2自己做了一些更改,下面是百度网盘链接:链接:https://pan.baidu.com/s/10UBq2TRtFGORs30P9VaZxg提取码:sdfo复制这段内容后打开百度网盘手机App,操作更方便哦一:百度飞桨的环境配置参考:飞桨PaddlePaddle-源于产业实践的开源深度学习平台二:运行demo:三:代码接口:​ tools->_百度飞桨跨镜头跟踪人

iOS开发--UICollectionView横竖屏旋转的适配_ios 旋转屏幕适配collectionview-程序员宅基地

文章浏览阅读5k次。说在前面最近针对公司项目进行了iPad的适配,发现了很多有关屏幕旋转的适配,发现了一些有趣的问题.1.UICollectionView的itemsize的旋转自适应UIcollectionView在屏幕旋转的过程中,没有进行自动适配,也就是旋转的过程中,collectionView的UIcollectionViewDelegateFlowLayout并没有重新出发调用.解决方案:页面添加屏..._ios 旋转屏幕适配collectionview

推荐文章

热门文章

相关标签