【机器学习】【pandas】017_pandas数据结构

一、认识pandas

pandas的优势:

· 增强图表的可读性;

· 便捷的数据处理能力;

· 读取文件更加方便;

· 封装了Matplotlib和Numpy的画图与计算;

如图所示,pandas使图表可读性更强

二、Series结构

Series是一个类似于一维数组的数据结构,能够保存任何类型的数据。

主要由一组数据和与之相关的索引构成。

1. Series的创建
import pandas as pd
import numpy as np

# Series
pd.Series(data=None, index=None, dtype=None)
# 创建
ser1 = pd.Series(np.arange(5))
print(ser1)
ser2 = pd.Series([6.8,5,23,14,8.999], index=[2,3,4,5,6])
print(ser2)
# 通过字典创建
ser3 = pd.Series({'red':100, 'blue':200, 'yellow':500})
print(ser3)

· 参数:

        data:传入的数据,可以是ndarray、list等;

        index:索引,必须是唯一的,并且与数据长度相等。默认为0—N;

        dtype:数据类型;

运行结果如下:

2. Series的属性

· index

· values

# 获取Series类元素的索引
print(ser3.index)
# 获取Series类的数据值
print(ser3.values)

三、DataFrame

1. DataFrame的属性

DataFrame是一个类似于二维数组或表格的对象,既有行索引也有列索引

· 行索引,表明不同行,横向索引,叫index,0轴,axis=0;

· 列索引,表明不同列,纵向索引,叫columns,1轴,axis=1;

pd.DataFrame(data=None, index=None, columns=None)

· 参数:

        index:行标签,默认0—N;

        columns:列标签,默认0—N;

· 通过已有数据创建:

daf1 =np.DataFrame(np.random.randn(2,3))

但是,直接显示出来数据的可读性较差,如何改善其显示呢?

# 例:创建学生成绩表
# 10名同学,5门成绩(40分—100分,10行5列)
daf2 = np.random.randint(40, 100, (10,5))
# daf2直接显示出来可读性比较差,如何让数据更有意义地显示?
# 使用pandas的数据结构
score = pd.DataFrame(daf2)
# 构造行、列索引序列
subjects = ["语文", "数学", "英语", "政治", "物理"]
stu = ["同学" + str(i) for i in range(score.shape[0])]
data = pd.DataFrame(daf2, columns=subjects, index=stu)
print(daf1)
print(daf2)
print(score)
print(data)

运行结果如下:

2. DataFrame的属性

· shape(表示元素的行列数)

· index(返回DataFrame的行索引列表)

· columns(返回DataFrame的列索引列表)

· values(直接获取其中的数值)

· T(转置)

· head(n)(获取前n行内容)

· tail(n)(获取后n行内容)

3. 设置索引值

· 修改行列索引值

※ 必须整体全部修改!无法单单修改某一个的索引!

# 重新设置索引
stu = ["学生" + str(i) for i in range(score.shape[0])]
# 整体修改
data.index = stu
# 错误修改方式:
# data.index[2] = "学生2"

· 以某列值设置为新的索引

        set_index(key, drop=True)

        · key:列索引名或者列索引名称的种类;

        · drop:boolean类型,默认为True,当作新的索引删除原来的列;

四、Multilndex

Multilndex是三位的数据结构

Multilndex的创建

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值