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索引数组值相同,顺序不同:

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

a    31
b    12
c    43
d    24
dtype: int64

把各个索引对应的值相加,顺序以第一个Series的为准

3. index索引数组某些值相同,某些值不相同:

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

a     NaN
b     NaN
c    13.0
d    24.0
e     NaN
f     NaN

相同索引值对应的值相加,不相同的因为找不到,所以返回NaN

4. index索引数组完全不同:

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

a   NaN
b   NaN
c   NaN
d   NaN
e   NaN
f   NaN
g   NaN
h   NaN
dtype: float64

因为没有相同的索引,所以无法对Series进行相加,得到的都是NaN

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

时间: 2024-07-31 14:50:50

pandas数组(pandas Series)-(3)向量化运算的相关文章

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', '

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(4)-向量化运算

pandas DataFrame进行向量化运算时,是根据行和列的索引值进行计算的,而不是行和列的位置: 1. 行和列索引一致: import pandas as pd df1 = pd.DataFrame({'a': [1, 2, 3], 'b': [4, 5, 6], 'c': [7, 8, 9]}) df2 = pd.DataFrame({'a': [10, 20, 30], 'b': [40, 50, 60], 'c': [70, 80, 90]}) print df1 + df2 a b

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

数据分析2 numpy(ndarray数组,属性,创建,索引切片,运算,函数,随机数), Pandas(Series创建,缺失值处理,特性,索引,DataFrame)

Numpy numpy数据类型 1.为啥使用numpy ? ndarray是一个多维数组列表 Numpy的核心特征就是N-维数组对----ndarray 它和python中的列表区别: 1.数组对象内元素类型必须相同 2.数组大小不可修改 2.创建ndarray     数组 3.常见的属性 数据类型 astype()方法可以修改数组类型 4.ndarray的创建方式 5.索引 6.切片 7.数组的向量运算和矢量运算 8. 布尔型索引 9.花式索引 10.一元函数 11.数学统计函数 12.随机

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