数据分析之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模块

pandas模块简介:

主要功能

"""
    - 具备诸多功能的两大数据结构
      Series、DataFrame
    都是基于Numpy构建出来的
        公司中使用频繁的是DataFrame,而Series是构成DataFrame的基础,即一个DataFrame可能由N个Series构成
    - 集成时间序列功能
    - 提供丰富的数学运算和操作(基于Numpy)
    - 灵活处理缺失数据

"""

# 由于数据分析三剑客模块使用频率很高 所以在很多ipynb文件的开头都会提前导入

导入目前学习到的模块

 

 


数据类型之Series

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

第一类:

 

 第二类:

 

 第三类:

 

 第四类:

 

 


缺失数据概念

在数据处理中如果遇到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 按照行标签取值

 

posted @ 2021-10-14 23:02  查无此人cxc  阅读(56)  评论(0)    收藏  举报