数据挖掘---Pandas的学习
Pandas介绍(panel + data + analysis)
为什么使用Pandas
便捷的数据处理能力
读取文件方便
封装了Matplotlib、Numpy的画图和计算
Pandas的核心数据结构(DataFrame+Panel+Series)
3大核心结构:
DataFrame
Panel
Series
1、DataFrame
DataFrame
结构:既有行索引,又有列索引的二维数组
属性:
shape
index
columns
values
T
方法:
head()
tail()
3 DataFrame索引的设置
1)修改行列索引值
2)重设索引
3)设置新索引
简单demo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | import numpy as np import pandas as pd def demo(): data = np.random.normal( 0 , 1 , ( 10 , 5 )) print(data) # 添加行索引 stock = [ "股票{}" .format(i) for i in range( 10 ) ] pd.DataFrame(data, index=stock) # 添加列索引 date = pd.date_range(start= "20180101" , periods= 5 , freq= "B" ) if __name__ == '__main__' : demo() |
1、结构:
2、属性
shape + index + columns + values + T
data = np.random.normal(0, 1, (10, 5))
3、方法
head() : 默认返回数据的前5行,head(3),返回前3行
tail() :默认返回数据的后5行,tail(3),返回后3行
4、DataFrame索引的设置
1)修改行列索引值: 只能整体修改,不能单独修改索引
2)重设索引
3)设置新索引
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | import numpy as np import pandas as pd def demo(): data = np.random.normal( 0 , 1 , ( 10 , 5 )) print(data) # 添加行索引 stock = [ "股票{}" .format(i) for i in range( 10 ) ] pd.DataFrame(data, index=stock) # 1 、添加列索引 date = pd.date_range(start= "20180101" , periods= 5 , freq= "B" ) # 修改行列索引值:整体修改,不能单独修改某一个 # 【错误】 data.index[ 2 ] = "股票88" --》 不能单独修改索引 stock_ = [ "股票_{}" .format(i) for i in range( 10 )] data.index = stock_ # 2 、重设索引 data.reset_index(drop=False) # False: 不删除原索引, True删除原索引h, 默认False # 3 、设置某列的新索引,创建新的dataframe df = pd.DataFrame({ 'month' : [ 1 , 4 , 7 , 10 ], 'year' : [ 2012 , 2014 , 2013 , 2014 ], 'sale' : [ 55 , 40 , 84 , 31 ]}) # 以月份设置新的索引 df.set_index( "month" , drop=True) # 设置多个索引,以年和月份(具有多索引的DataFrame,可用于三维数组) new_df = df.set_index([ "year" , "month" ]) if __name__ == '__main__' : demo() |
MultiIndex与Panel
1、MultiIndex
1 2 3 4 5 6 7 8 9 10 11 12 13 | import pandas as pd def demo(): df = pd.DataFrame({ 'month' : [ 1 , 4 , 7 , 10 ], 'year' : [ 2012 , 2014 , 2013 , 2014 ], 'sale' : [ 55 , 40 , 84 , 31 ]}) new_df = df.set_index([ "year" , "month" ]) print(new_df.index) # 索引列表 print(new_df.index.names) # 索引名称 if __name__ == '__main__' : demo() |
2、Panel
panel我们通常看做pandas的容器,没办法直接看3维数据,只能从某一个维度出发看另外2个二维的数据
Series
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决