pandas中的数据运算与算数运算
一,DataFrame中的算数运算
对于DataFrame,对其会同时发生在行和列上,两个DataFrame对象相加后,其索引行和列会取并集,当一个对象中某轴标签在另一个对象上找不到时,会返回NaN.可使用add方法传入特殊值.add(加法),sub(减法),div(除法),mul(乘法)
from pandas import Series,DataFrame
import pandas as pd
import numpy as np
from numpy import nan#导入相应模块
#插入数据
df1 = DataFrame(np.arange(12).reshape((3,4)),columns=list("abcd"))
df2 = DataFrame(np.arange(20).reshape((4,5)),columns=list("abcde"))
df1
df2
df1+df2#df1.add(df2)
df1.add(df2,fill_value=0)# 为df1添加第3行和e这一列,并将其填充为0
df1.add(df2).fillna(0)# 按照正常方式将df1和df2相加,然后将NaN值填充为0
结果如下:
二,DataFrame与Series之间的运算
frame = DataFrame(np.arange(12).reshape((4,3)),columns=list("bde"),
index=["Utah","Ohio","Texas","Oregon"])
frame
frame.iloc[1] # 获取某一行数据 用iloc[] 替换ix[] 方法
frame.index#获取索引
frame.loc["Oregon"]# 根据行索引提取数据
series = frame.iloc[0]
series
frame - series
结果:
三,函数的应用和映射
1,用apply将一个规则应用到DataFrame的行或者列上
f = lambda x : x.max() - x.min() # 匿名函数
#def getMax(x):#创建函数的方法