当前位置: 首页 > news >正文

重生归来,我要成功 Python 高手--day24 Pandas介绍,属性,方法,数据类型,基本数据操作,排序,算术和逻辑运算,自定义运算

Pandas

df为DataFarme的对象由多个Series组成,而Series是DataFarme的列对象

Series由索引和值组成

创建Series对象的方式:

列表创建:

# 列表转化为创建series对象
s1=pd.Series(['a','b','c'])
print(s1)
# 自定义索引
s2=pd.Series(['a','b','c'],index=['1','2','3'])
print(s2)

字典创建:

# 字典
s=pd.Series({'a':1,'b':2,'c':3})
s

元组转化:

# 元组转化
s4=pd.Series((11,22,33,44))
s4

adarry转化:

#adarry转化
s5=pd.Series(np.arange(5))
s5

Series属性:索引和值:

values和index

# 属性
s6=pd.Series(data=[i for i in range(6)],index=[i for i in 'ABCDEF'])
s6
# 获取索引和值
print(s6.index)
print(s6.values)

根据索引修改值:

# 根据索引修改值
print(s6["C"])
s6["F"]=99
s6

DataFarme:

类似于二维数组或者表格对象:

行索引:横向索引叫index

列索引:纵向索引叫columns

创建DataFarme对象的方式:

1.直接读取文件

df=pd.read_csv("文件路径”,encoding=‘解码集’)

2.字典加列表创建

info={'name':['张三','李四','王五'],'gender':['男','女','男'],'age':[21,22,33],
}
df1=pd.DataFrame(info)
df1

3.列表加元组

info2=[('张三','男',43),('王五','男',23),('李四','男',53)
]
df2=pd.DataFrame(info2,columns=['name','gender','age'])
df2

4.ndarry来创建

# ndarry来创建DataFarme对象arr1=np.arange(12).reshape(3,4)
df3=pd.DataFrame(arr1,columns=['a','b','c','e'])
df3

案例:

# 案例 10行五列拼接
arr2=np.random.randint(40,101,size=(10,5))
#改为对象
df4=pd.DataFrame(arr2)#添加列名(0-4)和索引值(0-9)
# 列名:
colunm_names=['语文','数学','英语','物理','化学']
# 索引值:
index_names=[ '同学'+str(i) for i in range(df4.shape[0])]df4.columns=colunm_names
df4.index=index_names
df4

DataFrame对象的属性

形状:df.shape

df4.shape

行索引:df.index

df4.index

列索引:df.columns

df4.columns

获取值:df.values

df4.values

转置:(行转列,列转行)df.T

df4.T

对象方法:

获取前多少行:

#前五行
df4.head(5)

获取后多少行:

#后五行
df4.tail(5)

详细信息:

# 查看详情
df4.info()

统计信息:

# 查看统计信息
df4.describe()

重置索引:

drop默认为Fales:添加新的索引原索引添加到表中

True:删除原索引添加新的索引

#重置原索引
df4.reset_index(drop=True)

以某个列为索引:

df4.set_index('语文')

Pandas的数据类型:

Pandas的基本数据操作:

获取数据:

获取数据必须是先列后行

df['high']['2018-02-27']

使用loc和iloc获取数据

loc:[行索引,列名]

# 结合loc为  行索引,列名
df.loc['2018-02-27','close']
#24.16
# 取范围df.loc['2018-02-27':'2018-02-14','open':'low']

iloc:[行号,列索引]

# 结合iloc   行号,列索引
df.iloc[0:5,0:2]

排序:默认值为升序True   False:为降序

值排序:

单值排序:

# 单值排序,True 为升序,false为降序
df.sort_values('close',ascending=False)

多值排序:

df.sort_values(['open','high'],ascending=[False,False])

索引排序

#索引排序
df.sort_index(ascending=True)

Series对象的排序:

# Series对象,索引排序
df.open.sort_index(ascending=False)
#值排序
df.open.sort_values(ascending=True)

算数运算:

# 算数运算符
df.close+2

逻辑运算:

# 大于
df[df.open>23]

逻辑运算函数:

并且需要使用”  &  “符号

df.query:

# open大于23并且小于24
df.query('open>23 & open<24')

统计函数:

与numpy相同

# 计算平均值、标准差、最大值、最小值
data.describe()

min(最小值), max(最大值), mean(平均值), median(中位数), var(方差), std(标准差),mode(众数)

自定义运算:

apply(函数名,axis=0) 默认为列

axis=1对行进行操作,axis=0对列进行操作

可以使用lambda表达式:

lambda loc : loc.max()-loc.min()

def func(clo):return clo.max()-clo.min()
df[['open','close']].apply(func)

http://www.dtcms.com/a/464935.html

相关文章:

  • 如何在关闭浏览器标签前,可靠地发送 HTTP 请求?
  • http cookie 与 session
  • Asp.net core appsettings.json` 和 `appsettings.Development.json`文件区别
  • ICRA-2025 | 机器人具身探索导航新策略!CTSAC:基于课程学习Transformer SAC算法的目标导向机器人探索
  • ManipulationNet:开启真实世界机器人操作基准测试新时代
  • 物流公司网站模版网页设计与制作做网站
  • 北京网站 百度快照单位如何建设网站
  • 英语文章工具: 提取、过滤文章单词在线工具
  • 良策金宝AI:为光伏工程师打造专属“智能外脑”
  • 《C++ STL list 完全指南:从基础操作到特性对比,解锁链表容器高效用法》
  • 刀客doc:亚马逊广告再下一城,拿下微软DSP广告业务
  • Agent 开发设计模式(Agentic Design Patterns )第 3 章:并行化模式
  • 配电系统接地 | TT, TN-C, TNC-S,TN-S, IT
  • Qemu-NUC980(七):Timer定时器
  • 20251009
  • CanFestival 主站-NMT初始化
  • Transformer基础之注意力机制
  • 模板式网站价格网页设置快捷键
  • 重要通知:spring-ai-hunyuan 已兼容 Spring AI 稳定版!
  • 惊艳的网站工作室网页模板
  • 如何在 Spring Boot 应用中配置多个 Spring AI 的 LLM 客户端
  • 【实时Linux实战系列】实时系统的可观测性:Prometheus 与 Grafana 集成
  • HTML 元素:构建网页的基础
  • HTML应用指南:利用GET请求获取全国中国建设银行网点位置信息
  • AI编程 | 基于飞书知识库+多模态大模型,打造B站视频AI笔记自动生成系统
  • 专门做预售的网站做app需要学什么编程
  • [VoiceRAG] RAG工具集 | attach_rag_tools | _search_tool | _report_grounding_tool
  • ppo笔记2
  • 小九源码-springboot082-java旅游攻略平台
  • 从 Kotlin 编译器 API 的变化开始: 2.2.2X -> 2.3.0-Beta1