首页 > 编程语言 > 详细

pandas数组(pandas Series)-(4)NaN的处理

时间:2018-06-26 10:37:25      阅读:233      评论:0      收藏:0      [点我收藏+]

上一篇pandas数组(pandas Series)-(3)向量化运算里说到,将两个 pandas Series 进行向量化运算的时候,如果某个 key 索引只在其中一个 Series 里出现,计算的结果会是 NaN ,那么有什么办法能处理 NaN 呢?

1.  dropna() 方法:

此方法会把所有为 NaN 结果的值都丢弃,相当于只计算共有的 key 索引对应的值:

import pandas as pd

s1 = pd.Series([1, 2, 3, 4], index=[a, b, c, d])
s2 = pd.Series([10, 20, 30, 40], index=[c, d, e, f])

s3 = s1+s2
print(s3)

# 结果:
a     NaN
b     NaN
c    13.0
d    24.0
e     NaN
f     NaN
dtype: float64


print(s3.dropna())

# 结果:
c    13.0
d    24.0
dtype: float64

 

2.  fill_value 参数:

设置 fill_value参数可以给一个Series没有key索引对应值的时候设置一个填充值:

s1 = pd.Series([1, 2, 3, 4], index=[a, b, c, d])
s2 = pd.Series([10, 20, 30, 40], index=[c, d, e, f])
s3 = s1.add(s2, fill_value=0)
print(s3)

# 结果:
a     1.0
b     2.0
c    13.0
d    24.0
e    30.0
f    40.0
dtype: float64

这样, s2 里虽然没有 a,b 这个索引 key , s1 里虽然没有 e,f 这两个 key ,但是在运算的时候,会用 0 去填充进行运算,也可以设置为其他值.

 

可见,以上这两种方法的区别就在于,一个会除去两个 Series 不共有的 key ,一个会用填充值去填补不共有的 key 的值.

pandas数组(pandas Series)-(4)NaN的处理

原文:https://www.cnblogs.com/liulangmao/p/9227116.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!