浅谈Pandas:Series和DataFrame间的算术元素
如下所示:
import numpy as np import pandas as pd from pandas import Series,DataFrame
一、Series与Series
s1 = Series([1,3,5,7],index=['a','b','c','d']) s2 = Series([2,4,6,8],index=['a','b','c','e'])
索引对齐项相加,不对齐项的值取NaN
s1+s2 1 a 3.0 b 7.0 c 11.0 d NaN e NaN dtype: float64
二、DataFrame与DataFrame
data1 = {'水果':['苹果','梨','草莓'], '数量':[3,2,5], '价格':[10,9,8]} data2 = {'数量':[3,2,5,6], '价格':[10,9,8,7]} df1 = DataFrame(data1) df2 = DataFrame(data2)
在行和列上同时对齐后进行计算,如果找不到对应项则取NaN
print(df1*df2)
价格 数量 水果 0 100.0 9.0 NaN 1 81.0 4.0 NaN 2 64.0 25.0 NaN 3 NaN NaN NaN
三、Series与DataFrame
1.利用广播实现DataFrame与某行的运算
print(df2+df2.iloc[0]) # 将第0行加到所有行上
价格 数量 0 20 6 1 19 5 2 18 8 3 17 9
2.利用广播实现DataFrame与某列的运算(指定轴axis=0)
print(df2.sub(df2.iloc[:,0],axis=0))
价格 数量 0 0 -7 1 0 -7 2 0 -3 3 0 -1
3.运算时如果无法对齐,则填充NaN
s = Series([1,1,1],index=['数量','价格','重量']) print(df2+s)
价格 数量 重量 0 11 4 NaN 1 10 3 NaN 2 9 6 NaN 3 8 7 NaN
相关推荐
roamer 2020-10-29
三石 2020-08-23
QianYanDai 2020-08-16
mmmjyjy 2020-07-16
QianYanDai 2020-07-05
QianYanDai 2020-07-05
jiahaohappy 2020-06-21
QianYanDai 2020-06-16
zhangxiaojiakele 2020-05-25
jzlixiao 2020-05-15
jiahaohappy 2020-05-12
zhangxiaojiakele 2020-05-11
jzlixiao 2020-05-08
Series是一种类似于一维数组的对象,由一组数据以及一组与之对应的索引组成。 index: 索引序列,必须是唯一的,且与数据的长度相同. 如果没有传入索引参数,则默认会自动创建一个从0~N的整数索引
jzlixiao 2020-05-09
81510295 2020-11-17
listep 2020-09-11
Tristahong 2020-08-24
Johnson0 2020-07-28
santiago00 2020-07-11