数据分析之pandas模块
练习:
1.
1.计算数组每一行和每一列的中位数(不能使用axis参数)
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.]
])
行:

列: 可以通过对列表的转置实现列的计算

2.jason有10000块钱,去某赌场嗨皮
假设输赢概率都是50%,并且赢一场赚100,输一场亏100
jason总共玩了1500场,写程序计算1500场之后jason还剩多少钱

扩展:统计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模块
""" - 具备诸多功能的两大数据结构 Series、DataFrame 都是基于Numpy构建出来的 公司中使用频繁的是DataFrame,而Series是构成DataFrame的基础,即一个DataFrame可能由N个Series构成 - 集成时间序列功能 - 提供丰富的数学运算和操作(基于Numpy) - 灵活处理缺失数据 """
# 由于数据分析三剑客模块使用频率很高 所以在很多ipynb文件的开头都会提前导入
导入目前学习到的模块

概念: 是一种类似于一维数组对象,由数据和相关的标签(索引)组成
第一类:

第二类:

第三类:

第四类:

缺失数据概念
在数据处理中如果遇到NaN关键字那么意思就是缺失数据
首先构造数据

当索引值更改后 没有数据的那一行数据 会变成NaN属于浮点型 并且 由于 数据类型需要一致的,所以自动转换成浮点型

dropna() 过滤掉NaN的行

fillna() 添加数据

isnull()判断数据是否为nan 很明显 lkin为空 所以是nan 是True'

notnull()判断数据是否存在 如果存在则是True

但是这里需要注意一点

结论:对数据进行处理返回一个新的结果,原数据会保持不变,如果想要直接影响原数据需要加参数
inplace=True
""" 如何判断当前数据是否改变 1.如果执行操作之后有结果说明原数据没有变 res.fillna(666) 2.如果执行操作之后没有结果说明原数据改变 res.fillna(666,inplace=True) inplace=True该参数很多方法都有 意思就是直接改变原数据 """


布尔值索引
通过布尔值取值
方式1:

方式2:

方式3:


针对&符号链接的条件都必须要加括号
行索引和行标签
针对索引的冲突


都能拿到12
但是一旦 索引与标签冲突

就会发生报错
解决措施:


.iloc 按照索引取值
.loc 按照行标签取值

浙公网安备 33010602011771号