吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2808|回复: 6
收起左侧

[Python 转载] 【笔记】python数据分析——pandas初识

  [复制链接]
qianshang666 发表于 2021-3-13 19:52

往期数据分析笔记

【笔记】python数据分析——numpy初识1
【笔记】python数据分析——numpy初识2
【笔记】python数据分析——变换与编程中的轴
【笔记】python数据分析——numpy随机数函数
【笔记】python数据分析——numpy数组索引及切片
【笔记】python数据分析——元素级运算及通用函数
【笔记】python数据分析——条件逻辑运算
【笔记】python数据分析——统计学运算
【笔记】python数据分析——矩阵相乘
【笔记】python数据分析——应用案例之图像负片

pandas介绍

pandas所包含的数据结构和数据处理工具的设计使得在python中进行数据清洗和分析非常快捷。pandas支持大部分Numpy语言风格的数组计算,尤其是数组函数以及没有for循环的各种数据处理

安装pandas包

Pandas可以通过PyPI的pip安装(其他安装方式请大家自行百度)。

pip install pandas

pandas导包

我之前说过numpy包导包的时候要给一个别名,在这里pandas的标准导包也是需要的

import pandas as pd

除了上面这种导入方式,我们还可以方便的从本地命名空间导入Series和DataFrame,它们是常用的类

from pandas import Series
from pandas import DataFrame

Series数据结构

Series是一种一维的数组型对象,它包含了一个值序列(与Numpy中的类型相似),并且包含了索引,最简单的序列可以仅仅由一个数组形成

  • 创建普通Series数据

    from pandas import Series
    obj = Series([1,2,3,4])
    print(obj)

    运行结果:
    0    1
    1    2
    2    3
    3    4
    dtype: int64
    后面一列才是我们生成的数据,前面一列是索引

  • 索引可以自己定义,定义方法:

    obj = Series([1,2,3,4],index = ['a','b','c','d'])
    print(obj)

    运行结果:
    a    1
    b    2
    c    3
    d    4
    dtype: int64

  • 给index起名字

    obj.index.name = 'test'

    运行结果:
    test
    a   -1
    b    2
    c    3
    d    4
    dtype: int64

  • 查看索引及数值

    print(obj.index)
    print(obj.value)

    运行结果:
    Index(['a', 'b', 'c', 'd'], dtype='object', name='test')
    [1  2  3  4]
    注意:使用values取到的值数据类型是numpy数组,也就是说可以直接对取到的值进行numpy操作

  • 通过索引值查找数据

    print(obj['c'])

    运行结果:
    3
    注意:如果要同时通过索引查找两个及以上的数据的话,需要使用列表的方式

    print(obj[['a','c','d']])

    运行结果:
    test
    a   -1
    c    3
    d    4
    dtype: int64

  • Series向量化运算,和numpy结合使用

    print(obj*10)

    运行结果:
    test
    a   -10
    b    20
    c    30
    d    40
    dtype: int64

    import numpy as np
    print(np.abs(obj.values))

    运行结果:
    [1 2 3 4]

DataFrame数据结构

DataFrame表示的是矩阵的数据表,DataFrame既有行索引也有列索引,DataFrame是以后我们做数据分析经常要用到的,我们以后拿到数据的时候,第一个要想到的就是把它转成DataFrame数据结构
注意:
DataFrame数据结构一定是字典嵌套列表
键值对,键就是列名,后面的列表就是每一列的元素

from pandas import DataFrame
data={
    'name':['张三','李四','王五'],
    'age':[30,40,10]
}
df = DataFrame(data)
print(df)

运行结果:
name  age
0   张三   30
1   李四   40
2   王五   10
列名就是键值对的键名,行索引是0,1,2

  • 修改行索引

    df = DataFrame(data,index = ['a','b','c'])
    print(df)

    运行结果:
    name  age
    a   张三   30
    b   李四   40
    c   王五   10

  • 修改列索引

    df = DataFrame(data,index = ['a','b','c'],columns = ['age','name'])
    print(df)

    运行结果:
    age name
    a   30   张三
    b   40   李四
    c   10   王五
    注意:列名也可以变,但不是真的改变,只能调换顺序(不能真的改变)

  • 给行列索引增加名字

    df.index.name = 'Id'
    df.columns.name = 'Name'
    print(df)

    运行结果:
    Name  age name
    Id
    a      30   张三
    b      40   李四
    c      10   王五

  • 将DataFrame数据转为numpy数组

    print(df.values)

    运行结果:
    [[30 '张三']
    [40 '李四']
    [10 '王五']]

今日鸡汤

生活很不简单,有很多的奥秘没人教你怎样去做,需要自己领悟。当你始终无法领悟,老老实实的做一个平凡的人吧。有天赋的人不是很多,就做一棵小草吧,随风摇摆,不怕踩踏,不怕野火,不怕被啃食,顽强的生命力就是存在的道理。还有什么比活着,还更有意义!

免费评分

参与人数 11吾爱币 +8 热心值 +10 收起 理由
emaer + 1 我很赞同!
xiaojia99 + 1 + 1 谢谢@Thanks!
mrjzx + 1 + 1 我很赞同!
7uerr + 1 + 1 正需要这样的干粮
RenJunyang + 1 谢谢@Thanks!
andly + 1 + 1 我很赞同!
zhou29 + 1 + 1 谢谢@Thanks!
lyl610abc + 1 我很赞同!
Guanhua521 + 1 + 1 热心回复!
超人明明会飞 + 1 我很赞同!
innerspace-hs + 1 + 1 我很赞同!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

mrjzx 发表于 2021-3-13 22:24
感谢分享
darling995 发表于 2021-3-19 21:59
ankea 发表于 2021-3-19 22:12
grongi 发表于 2021-3-20 13:45
pandas还是要好好学习一下
ibin 发表于 2021-3-20 15:15
内容真不错
emaer 发表于 2021-3-20 21:19
写的很好,赞一个
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 03:27

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表