python pandas fillna,pandas填充fillna无效
最近工作中遇到一个问题。熊猫读取的数据保存后成为空字符串,所以下面文章主要介绍熊猫使用fillna函数填充nan值的相关信息。通过一个示例代码非常详细的介绍了一下,有需要的朋友可以参考一下。
00-1010 1.参数分析1.1原地参数1.2方法参数1.3极限参数:1.4轴参数补充2。代码示例2.1常量填充2.1.1常量填充2.1.2字典填充2.2就地参数2.3方法参数2.4限制参数2.5轴参数摘要
目录
1. 参数解析
值:真、假
True:直接修改原对象。
True:创建副本,修改副本,并保持原始对象不变(默认为默认值)
1.1 inplace参数
值:{ 填充,填充,回填,填充,无},默认无
Pad/ffill:用以前的非缺失值填充缺失值。
回填/b填充:用下一个非缺失值填充缺失值。
无:指定一个值来替换缺少的值(默认情况下是这样)
1.2 method参数
限制填充的数量
1.3 limit参数:
修改填充方向
1.4 axis参数
Isnull和notnull函数用于确定是否存在缺失值数据。
Isnull:缺失值为True,非缺失值为Falsenotnull:缺失值为False,非缺失值为True。
补充
#指南包
进口熊猫作为pd
将numpy作为np导入
从numpy导入nan作为NaN
df1=pd。数据帧([[1,2,3],[南,南,2],[南,南,南],[8,8,南]])
df1
代码结果:
0 1 2
0 1.0 2.0 3.0
1楠楠2.0
2楠楠楠
3 8.0 8.0南
2. 代码实例
2.1 常数填充
#1.用常数填充
print (df1.fillna(100))
打印(-)
打印(df1)
运行结果:
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
-----------------------
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
2.1.2 用字典填充
第key列的NaN用key对应的value值填充
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
2.2 使用inplace参数
print (df1.fillna(0,inplace=True))
运行结果:
在这里插入代码片
2.3 使用method参数
1.method = 'ffill'/'pad':用前一个非缺失值去填充该缺失值
df2 = pd.DataFrame(np.random.randint(0,10,(5,5)))
运行结果:
0 1 2 3 4
0 8 4 4 5.0 6.0
1 5 2 8 NaN 7.0
2 6 3 1 NaN NaN
3 5 4 9 NaN NaN
4 6 5 4 6.0 9.0
-------------------------
0 1 2 3 4
0 8 4 4 5.0 6.0
1 5 2 8 5.0 7.0
2 6 3 1 5.0 7.0
3 5 4 9 5.0 7.0
4 6 5 4 6.0 9.0
2.method = ‘bflii’/‘backfill’:用下一个非缺失值填充该缺失值
df2 = pd.DataFrame(np.random.randint(0,10,(5,5)))
运行结果:
0 1 2 3 4
0 1 0 4 1.0 3.0
1 4 6 4 NaN 2.0
2 4 9 2 NaN NaN
3 9 7 3 NaN NaN
4 6 1 3 5.0 5.0
-------------------------
0 1 2 3 4
0 1 0 4 1.0 3.0
1 4 6 4 5.0 2.0
2 4 9 2 5.0 5.0
3 9 7 3 5.0 5.0
4 6 1 3 5.0 5.0
2.4 使用limit参数
用下一个非缺失值填充该缺失值且每列只填充2个
df2 = pd.DataFrame(np.random.randint(0,10,(5,5)))
运行结果:
0 1 2 3 4
0 2 0 4 4.0 0.0
1 7 9 9 NaN 1.0
2 1 7 3 NaN NaN
3 8 5 8 NaN NaN
4 8 6 2 4.0 4.0
-------------------------
0 1 2 3 4
0 2 0 4 4.0 0.0
1 7 9 9 NaN 1.0
2 1 7 3 4.0 4.0
3 8 5 8 4.0 4.0
4 8 6 2 4.0 4.0
2.5 使用axis参数
axis=0 对每列数据进行操作
axis=1 对每行数据进行操作
df2 = pd.DataFrame(np.random.randint(0,10,(5,5)))
运行结果:
0 1 2 3 4
0 0.0 4.0 9.0 7.0 2.0
1 6.0 5.0 0.0 0.0 3.0
2 8.0 8.0 8.0 8.0 NaN
3 5.0 5.0 6.0 6.0 NaN
4 7.0 5.0 7.0 4.0 1.0
还有一些pandas的基础运算请参考这篇文章->pandas DataFrame基础运算以及空值填充
总结
到此这篇关于pandas使用fillna函数填充NaN值的文章就介绍到这了,更多相关pandas用fillna填充NaN值内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。