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

上一篇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 的值.

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

时间: 2024-10-03 03:15:23

pandas数组(pandas Series)-(4)NaN的处理的相关文章

pandas数组(pandas Series)-(3)向量化运算

这篇介绍下有index索引的pandas Series是如何进行向量化运算的: 1. index索引数组相同: s1 = pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd']) s2 = pd.Series([10, 20, 30, 40], index=['a', 'b', 'c', 'd']) print s1 + s2 a 11 b 22 c 33 d 44 dtype: int64 直接把各个索引对应的值进行相加 2. index索引数组值

pandas数组(pandas Series)-(2)

pandas Series 比 numpy array 要强大很多,体现在很多方面 首先, pandas Series 有一些方法,比如: describe 方法可以给出 Series 的一些分析数据: import pandas as pd s = pd.Series([1,2,3,4]) d = s.describe()print(d) count 4.000000 mean 2.500000 std 1.290994 min 1.000000 25% 1.750000 50% 2.5000

pandas数组(pandas Series)-(5)apply方法自定义函数

有时候需要对 pandas Series 里的值进行一些操作,但是没有内置函数,这时候可以自己写一个函数,使用 pandas Series 的 apply 方法,可以对里面的每个值都调用这个函数,然后返回一个新的 Series import pandas as pd s = pd.Series([1, 2, 3, 4, 5]) def add_one(x): return x + 1 print s.apply(add_one) # 结果: 0 2 1 3 2 4 3 5 4 6 dtype:

pandas DataFrame和Series

Pandas入门-Series和DataFrame 概述:pandas含有使数据分析工作变得更快更简单的高级数据结构和操作工具,pandas是基于Numpy构建的.pandas在过去的几年中逐渐成长为一个非常强大的库. pandas的数据结构介绍 引入pandas >>> from pandas import Series,DataFrame >>> import pandas as pd pandas有两个主要的数据结构:Series和DataFrame. Serie

Pandas 学习之Series学习

Pandas 数据结构 first: import numpy as np import pandas as pd Series 1.支持任意类型的一维标签数据,分为数据部分和轴标签部分(索引) 2.可以从list,dict,ndarray,scalar value等数据类型来创建 3.Series的取值和向量运算 From ndarray python s = pd.Series(np.random.randn(5),index = 'a b c d e'.split(' ')) python

6 ways to Sort Pandas Dataframe: Pandas Tutorial

Often you want to sort Pandas data frame in a specific way. Typically, one may want to sort pandas data frame based on the values of one or more columns or sort based on the values of row index or row names of pandas dataframe. Pandas data frame has

pandas 学习(1): pandas 数据结构之Series

1. Series Series 是一个类数组的数据结构,同时带有标签(lable)或者说索引(index). 1.1 下边生成一个最简单的Series对象,因为没有给Series指定索引,所以此时会使用默认索引(从0到N-1). # 引入Series和DataFrameIn [16]: from pandas import Series,DataFrame In [17]: import pandas as pd In [18]: ser1 = Series([1,2,3,4]) In [19

pandas中的series数据类型

import pandas as pd import numpy as np import names ''' 写在前面的话: 1.series与array类型的不同之处为series有索引,而另一个没有;series中的数据必须是一维的,而array类型不一定 2.可以把series看成一个定长的有序字典,可以通过shape,index,values等得到series的属性 ''' # 1.series的创建 ''' (1)由列表或numpy数组创建 默认索引为0到N-1的整数型索引,如s1;

1、pandas数据结构之Series——创建Series

一.pandas提供两个常用的数据结构: • Series• DataFrame  二.Series Series 类似于一维数组对象,它是由一组数据(不同数据类型)以及与之相关的(数据标签)索引组成,用于存储一行或者一列的数据,(类似于列表,但是有索引) 2.1.如何创建Series对象? 常见的创建Pandas对象的方式,都像这样的形式: pd.Series(data, index=index) 其中,index是一个可选参数,data参数支持多种数据类型 上边给出可以通过list.dict