1. 常用的数学和统计方法
pandas对象拥有一组常用的数学和统计方法。它们大部分都属于约简和汇总统计,用于从Series中提取单个值(如sum或mean)或从DataFrame的行或列中提取一个Series。
f = DataFrame([1.4, np.nan], [7.1, -4.5], index=['a', 'b'], columns=['one', 'two'])
f.sum() # axis = 0
f.sum(axis = 1)
f.mean(axis = 1, skipna = False)
有些方法(如idxmin和idxmax)返回的是间接统计(计算能够获取最小值或最大值的索引值) 还有一种方法,它既不是约简型也不是累计型。
describe就是一个例子,它用于一次性产生多个汇总统计
f.describe()
f.idxmax()
2. 相关系数和协方差
有些汇总统计(如相关系数和协方差)是通过参数对计算出来的。我们来看几个DataFrame,它们的数据来自Yahoo! Finance的股票价格和成交量
用padas-datareader包能加载。如果没有的话,用conda或pip来下载这个包
conda install pandas-datareader
import pandas as pd
import pandas_datareader.data as web
all_data = {ticker:web.get_data_yahoo(ticker) for ticker in['AAPL', 'IBM', 'MSFT', 'GOOG']}
price = pd.DataFrame({ticker:data['Adj Close'] for ticker, data in all_data.items()})
# for (ticker, data)
# pct_change(): 这个函数用来计算同columns两个相邻的数字之间的变化率;再计算一下价格百分比的变化
returns = price.pct_change()
returns.tail() # 显示末尾几行,默认为5行
Series的corr方法用于计算两个Series中重叠的、非NA的、按索引对齐的值的相关系数。
与此类似,cov用于计算协方差。
DataFrame的corr和cov方法将以DataFrame的形式返回完整的相关系数或协方差矩阵
returns['MSFT'].corr(return['IBM'])
returns['MSFT'].cov()
returns.corr()
returns.cov()
3. 唯一值、值计数以及成员资格
obj = Series(['c', 'a', 'd', 'a', 'a', 'b', 'b', 'c', 'c'])
obj.unique()
dtype = object()
obj.value_counts()
obj.isin(['b', 'c'])