1 | import numpy as np |
协方差和相关系数
- corr()
- cov()
- corrwith()
1 | all_data = {ticker: web.get_data_yahoo(ticker) |
1 | # 计算价格的百分变化 |
AAPL | IBM | MSFT | GOOG | |
---|---|---|---|---|
Date | ||||
2009-12-31 | NaN | NaN | NaN | NaN |
2010-01-04 | 0.015565 | 0.011841 | 0.015420 | 0.010920 |
2010-01-05 | 0.001729 | -0.012080 | 0.000323 | -0.004404 |
2010-01-06 | -0.015906 | -0.006496 | -0.006137 | -0.025209 |
2010-01-07 | -0.001849 | -0.003461 | -0.010400 | -0.023280 |
1 | # 计算相关系数和协方差 |
1 | 0.49161308372179857 |
1 | returns.MSFT.corr(returns.IBM) # 通过属性的形式 |
1 | 0.49161308372179857 |
1 | # 协方差和相关系数矩阵 |
1 | AAPL IBM MSFT GOOG |
1 | # corrwith():计算某列或者行和另一个S或者DF数据之间的相关系数 |
1 | AAPL 0.387306 |
唯一值、值计数和成员资格
- unique():返回未排序的值
- value_counts():计算出现的频率,降序
- pd.value_counts(obj.values, sort=False)
- isin()判断成员资格
1 | obj = pd.Series(['c', 'a', 'd', 'a', 'a', 'b', 'b', 'c', 'c']) |
1 | # 值计数功能 |
1 | array(['c', 'a', 'd', 'b'], dtype=object) |
1 | obj.value_counts() # 默认是降序通过sort=False关闭降序功能pd.value_counts(obj.values, sort=False) |
1 | a 3 |
1 | # 成员资格 |
1 | 0 True |
1 | obj[mask] |
1 | 0 c |
相关列的柱状图
将pandas.value_counts传给该DataFrame的apply函数
1 | data = pd.DataFrame({'Qu1': [1, 3, 4, 3, 4], |
Qu1 | Qu2 | Qu3 | |
---|---|---|---|
0 | 1 | 2 | 1 |
1 | 3 | 3 | 5 |
2 | 4 | 1 | 2 |
3 | 3 | 2 | 4 |
4 | 4 | 3 | 4 |
1 | result = data.apply(pd.value_counts).fillna(0) |
Qu1 | Qu2 | Qu3 | |
---|---|---|---|
1 | 1.0 | 1.0 | 1.0 |
2 | 0.0 | 2.0 | 1.0 |
3 | 2.0 | 2.0 | 0.0 |
4 | 2.0 | 0.0 | 2.0 |
5 | 0.0 | 0.0 | 1.0 |
1 | data.apply(pd.value_counts) |
Qu1 | Qu2 | Qu3 | |
---|---|---|---|
1 | 1.0 | 1.0 | 1.0 |
2 | NaN | 2.0 | 1.0 |
3 | 2.0 | 2.0 | NaN |
4 | 2.0 | NaN | 2.0 |
5 | NaN | NaN | 1.0 |