目录
- 练习题
- pandas模块简介
- 数据类型之Series
- 缺失数据概念
- 数据修改规则
- 布尔值索引
- 行索引/行标签
练习题
1.计算数组每一行和每一列的中位数(不使用axis参数)
import numpy as np
res = np.array([
[ 80.5, 60., 40.1, 20., 90.7],
[ 10.5, 30., 50.4, 70.3, 90.],
[ 35.2, 35., 39.8, 39., 31.],
[91.2, 83.4, 85.6, 67.8, 99.]
])
每一行均值
for i in res:
print('每一行>>>:',i)
print('中位数>>>:',np.median(i))
每一列均值
for i in range(res.shape[1]):
print('每一列>>>:',res[:,i])
print('中位数>>>:',np.median(res[:,i]))
2.jason有10000块钱,去某赌场嗨皮假设输赢概率都是50%,
并且赢一场赚100输一场亏100
jason总共玩了1500场,写程序计算1500场之后jason还剩多少钱
# 先定义一个变量存储jason的本金
money = 10000
# 利用for循环模拟1500次赌局
for i in range(1500):
# 先判断输赢
is_right = np.random.choice([1,0]) # 1表示赢 0表示输
# 判断赢则账户加100
if is_right:
money += 100
# 判断输则账户减100
else:
money -= 100
# 循环结束即1500场完成
print(money)
扩展:统计jason每一次赌完后账户总额
# 先定义一个变量存储jason的本金
money = 10000
# 再定义一个存储每次赌局之后账户金额的变量
package = []
# 先将jason初始的本金添加进来
package.append(money)
# 利用for循环模拟1500次赌局
for i in range(1500):
# 先判断输赢
is_right = np.random.choice([1,0]) # 1表示赢 0表示输
# 判断赢则账户加100
if is_right:
money += 100
# 判断输则账户减100
else:
money -= 100
# 每次循环结束之后都将结构添加到列表中
package.append(money)
# 循环结束即1500场完成
# print(money)
# print('记录',package)
pandas模块简介
它是基于numpy构建,让python语言成为了使用最广泛且强大的数据分析语言,针对表格文件的操作也有着巨大的优势,尤其是数据量超过10万的数据
主要功能
1.具备诸多功能的两大数据结构
# Series、DataFrame
两者都是基于Numpy构建出来的
公司中使用频繁的是DataFrame,而Series是构成DataFrame的基础
即一个DataFrame可能由N个Series构成
2.集成时间序列功能
3.提供丰富的数学运算和操作
4.灵活处理缺失数据
下载与导入
# 下载
1.python纯开发环境下
pip3 install pandas
2.anaconda环境下
conda install pandas
'''anaconda已经自动下载好了数据分析相关的模块,无需再下载'''
# 导入
import pandas
import pandas as pd
要点
数据分析三剑客模块由于使用频率很高
所以在很多ipynb文件的开头都会提前导入
import numpy as np
import pandas as pd
数据类型之Series
是一种类似于一维数组对象,由数据和相关的标签(索引)组成
第一种:
![]()
第二种:
pd.Series([4,5,6,7,8],index=['a','b','c','d','e'])
![]()
第三种:
![]()
第四种:
pd.Series(0,index=['a','b','c'])
![]()
缺失数据概念
在数据处理中如果遇到NaN关键字等同于缺失数据,且NaN属于浮点型
![]()
方法:
1.过滤掉值为NaN的行
dropna()
![]()
2.填充缺失数据
fillna()
![]()
解决措施
![]()
3.返回布尔数组
isnull()
![]()
4.返回布尔数组
notnull()
![]()
数据修改规则
# 如何判断当前数据是否改变?
1.如果执行操作之后有结果说明原数据没有变
2.如果执行操作之后没有结果说明原数据改变
布尔值索引
布尔值索引的本质就是按照对应关系筛选出True对应的数据
方法
1.price[mask]
![]()
2.price|mask
![]()
3.(price>200) & (price<900)
![]()
4.price[(price>200) & (price<900)]
![]()
行索引\行标签
演示一:
![]()
演示二:
![]()
解决措施
![]()