
数据分析肯定少不了数据间的计算,在excel中我们可以在单元格里面运算两个单元格的数据,自动填充即可完成整列的计算,而在pandas中有更为完善和简单的运算方法:
重要知识点:
- 数据计算总是会产生新的对象
- Sreies和DataFrame的计算要考虑是否有共同的索引
- 序列之间,DataFrame内部,DataFrame之间,以及他们和整数之间都可以运算
- 数值可以运算,文本也可以运算
- 如果你想在运算结果替换上次的运算就用相同的标签名:data["文本"]=data["文本"]*2
实例:
导入需要的模块:
#ecoding:utf-8# Created by Administrator at 2018-8-27import pandas as pdimport numpy as npimport osfrom tkinter.filedialog import askdirectoryimport tkinter as tkfrom tkinter import filedialogimport matplotlib as plt
导入数据:
data=pd.read_csv("1M.csv")data

Series
导入的是一个csv,导入到pandas后为DataFrame,我们先去两列数据作为Sreies,看看如何进行数计算:
s1=data["col1"]s2=data["col2"]s1+s2

下面来看一下Sreies的自动对齐功能:
重新构建两个Series:
d1=data.loc[0:10,"col1"]d2=data.loc[4:15,"col2"]d1+d2

因为两个序列的索引不是完全相同,pandas会自动将两个序列都含有的索引进行相加
不仅加减可以,乘除也是可以,也可以更复杂:
(s1+s2)/s2**2

与整数运算:
s1+5

DataFrame
在DataFrame中的数据计算很类似于Sreies,但我们通常会将结果赋值给新的一列:
data["加法"]=data["col1"]+data["col2"]data["减法"]=data["col1"]-data["col2"]data["乘法"]=data["col1"]*data["col2"]data["除法"]=data["col1"]/data["col2"]data

与整数运算:
data["整数加法"]=data["col1"]+10

DataFrame与Sreies运算
data["DS"]=data["col1"]+s1data

如果两个数据索引是不相等的话:
data["DS2"]=data["col1"]+d2
data与d2交集的部分才会有计算结果

DataFrame全部的数据*2
data=data*2data

如果数据中有文本会怎么样?
data["文本"]="hello"

文本也会被*2
data=data*2

如果你想单独让文本*2也可以:
data["文本"]=data["文本"]*2data

DataFrame之间的运算:
复制一个新数据:
data2=data[["col1