Series和DataFrame的简单数学运算

Series和DataFrame的简单数学运算操作学习

引入相关库

import numpy as np
import pandas as pd
from pandas import Series,DataFrame

Series的数学运算

首先创建两个series,s1和s2

s1=Series([1,2,3],index=['A','B','C'])
s1
A    1
B    2
C    3
dtype: int64
s1=Series([1,2,3],index=['A','B','C'])
s1
A    1
B    2
C    3
dtype: int64
s2=Series([4,5,6,7],index=['B','C','D','E'])
s2
B    4
C    5
D    6
E    7
dtype: int64

获取s1+s2的运算结果
其中A在s2里面为NaN,D和E在s1里面为NaN,NaN和任何数相加为NaN

s1 + s2
A    NaN
B    6.0
C    8.0
D    NaN
E    NaN
dtype: float64

DataFrame的运算

先创建两个DataFrame
第一个DataFrame为2*2的

df1=DataFrame(np.arange(4).reshape(2,2),index=['A','B'],columns=['BJ','SH'])
df1
     BJ SH
----------
A    0   1
B    2   3

第二个DataFrame为3*3的

df2=DataFrame(np.arange(9).reshape(3,3),index=['A','B','C'],columns=['BJ','SH','GZ'])
df2
     BJ SH GZ
-------------
A    0  1  2
B    3  4  5
C    6  7  8

获取df1+df2的运算结果
加法规则与Sereies类似,df1相对于df2没有值的地方作为NaN参与运算,结果也为NaN。

     BJ    SH   GZ
------------------
A    0.0  NaN  2.0
B    5.0  NaN  7.0
C    NaN  NaN  NaN

DataFrame内置的运算

创建一个新的DataFrame

df3=DataFrame([[1,2,3],[4,5,np.nan],[7,8,9]],index=['A','B','C'],columns=['c1','c2','c3'])
df3
     c1  c2  c3
------------------
A    1   2   3.0
B    4   5   NaN
C    7   8   9.0

sum运算返回一个Series,忽略NaN的值,得出每一列的和

df3.sum()
c1    12.0
c2    15.0
c3    12.0
dtype: float64

如下可以获取每一行的求和

df3.sum(axis=1)
A     6.0
B     9.0
C    24.0
dtype: float64

min求每一列的最小值,如果求行的min传入axis=1

df3.min()
c1    1.0
c2    2.0
c3    3.0
dtype: float64

max求每一列的最大值,如果求行的max传入axis=1

df3.max()
c1    7.0
c2    8.0
c3    9.0
dtype: float64

describe会返回一些以列为基础的统计的数据,count代表数据个数,mean代表平均值,std代表标准差,min代表最小值,max代表最大值,以及百分比数据。

df3.describe()
       c1   c2    c3
-------------------------
count 3.0  3.0  2.000000
mean  4.0  5.0  6.000000
std   3.0  3.0  4.242641
min   1.0  2.0  3.000000
25%   2.5  3.5  4.500000
50%   4.0  5.0  6.000000
75%   5.5  6.5  7.500000
max   7.0  8.0  9.000000
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值