python每日学习12:pandas库的用法(1)

python每日学习12:pandas库的用法(1)

  • 安装

    pip install pandas
    
  • 设定系统环境

    import pandas as pd
    #设定自由列表输出最多为 10 行
    pd.options.display.max_rows = 10
    # 显示当前 Pandas 版本号
    pd.__version__
    
  • 进入jupyter notebook 页面

    • 在终端中输入:juypter notebook
    • 在这里插入图片描述
    • 选择一个连接
    • 在这里插入图片描述
    • 创建一个文件
    • 在这里插入图片描述
  • Series对象创建

    • Series对象创建:一维数组,与Numpy中的一维array类似。类似于一维数组的对象,是由一组数据以及一组与之相关的数据标签(即索引)组成。
    • 仅由一组数据也可产生简单的Series 对象。用值列表生成 Series 时,Pandas 默认自动生成整数索引。
    # 使用列表创建
    import pandas as pd
    import numpy as np
    data=pd.Series([3,4,7,2,5,9,8])
    data
    
    • pandas中两个重要的属性 values 和index,values:是Series对象的原始数据。index:对应了Series对象的索引对象。
    # 属性values和index
    data.index
    data.values# 指定index
    data=pd.Series([3,4,7,2,5],index=['yi','er','san','si','wu'])
    data# 使用list列表指定index
    data=pd.Series([4,3,2,1],index=list('abcd'))
    data# 传入字典创建,默认将key作为index
    a_dict={'aa':3000,'bb':5000,'cc':6000}
    a_Series=pd.Series(a_dict)
    a_Series# 如果既用了字典创建了Series对象,又显示的指定了index,如果key不存在,则值为NaN
    b_series=pd.Series(a_dict,index=['aa','cc'])
    b_series
    c_series=pd.Series(a_dict,index=['bb','dd'])
    c_series# 将一个标量与index对象一起传入创建
    data=pd.Series(10,index=list('abcd'))
    data
    
  • DataFrame对象创建

    • 是 Pandas 中的一个表格型的数据结构,包含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型等)
    • DataFrame 即有行索引也有列索引,可以被看做是由 Series 组成的字典。将两个series对象作为dict的value传入,就可以创建一个DataFrame对象。
    # 创建DataFrame对象
    a_dict={'aa':3000,'bb':5000,'cc':6000}
    b_dict={'dd':120,'ee':350,'ff':670}
    a=pd.Series(a_dict)
    b=pd.Series(b_dict)
    c=pd.DataFrame({'aa':a,'bb':b})
    c# values index columns属性
    c.index#索引
    c.values#值
    c.columns#列的名称# 列表创建
    a_dict={'aa':3000,'bb':5000,'cc':6000}
    b_dict={'aa':120,'bb':350,'cc':670}
    a=pd.DataFrame([a_dict,b_dict])
    a=pd.DataFrame([a_dict,b_dict],index=['value1','value2'])# 索引columns的使用
    a_dict={'aa':3000,'bb':5000,'cc':6000}
    a=pd.Series(a_dict)
    pd.DataFrame(a,columns=['named'])# 二维数组指定columns和index创建
    pd.DataFrame(np.random.randint(0,10,(3,2)),columns=list('ab'),index=list('efg'))# Pandas中的Index:Pandas中的Index,其实是不可变的一维数组
    ind=pd.Index([2,3,4,5,6])
    ind[3]
    ind[::2]
    #有ndim shap dtype size属性
    #但不能进行修改
    
  • 导入Excel文件

    • 使用read_excel()方法导入文件,首先要指定文件的路径。使用Pandas模块操作Excel时候,需要安装openpyxl。
    # 导入.xlsx文件时,指定导入哪个Sheet
    pd.read_excel('a.xlsx',sheet_name='Target')
    pd.read_excel('a.xlsx',sheet_name='0')# 导入.xlsx文件时,通过index_col指定行索引
    pd.read_excel('a.xlsx',sheet_name='0',index_col=0)# 导入.xlsx文件时,通过header指定列索引
    pd.read_excel('a.xlsx',sheet_name='0',header=1)
    pd.read_excel('a.xlsx',sheet_name='0',header=None)# 导入.xlsx文件时,通过usecols指定导入列
    pd.read_excel('a.xlsx',usecols=[1,2,3])
    
  • 导入csv文件

    • 导入csv文件时除了指明文件路径,还需要设置编码格式。Python中用得比较多的两种编码格式是UTF-8和gbk,默认编码格式是UTF-8。
    • 我们要根据导入文件本身的编码格式进行设置,通过设置参数encoding来设置导入的编码格式。
    # 导入.csv文件,文件编码格式是gbk
    pd.read_csv('b.csv',encoding='gbk')# 导入.csv文件,指明分隔符
    df=pd.read_csv('b.csv',encoding='gbk',sep=' ')
    df=pd.read_csv('b.csv',encoding='gbk',sep='_')
    
  • 导入txt文件

    • 导入.txt文件方法是read_table(),read_table()是将利用分隔符分开的文件导入。
    • DataFrame的通用函数。它不仅仅可以导入.txt文件,还可以导入.csv文件。
    # 导入.txt文件
    pd.read_table('c.txt',encoding='utf-8',sep='\t'# 导入.csv文件,指明分隔符
    pd.read_table('d.csv',encoding='gbk',sep=','
    
  • 列操作

    # 修改变量列
    a_dict={'aa':3000,'bb':5000,'cc':6000}
    b_dict={'aa':120,'bb':350,'cc':670}
    a=pd.DataFrame([a_dict,b_dict])
    na=['a','b','c']
    a.columns=naa.rename(columns={'a':'a1','b':'b1'},inplace=True)
    # columns =新旧名称字典:{旧名称,:新名称,}inplace = False :是否直接替换原数据框)# 筛选变量列:通过 df.var 或 df[var] 可以选择单列但只适用于已存在的列,只能筛选单列,结果为 Series
    a[['a1']]#单列的筛选结果为 DataFream
    a[['a1','b1']]#多列时,列名需要用列表形式提供,多列的筛选结果为 DF# 删除变量列
    a.drop(columns=['a1','b1'])
    # del df['column-name'] 直接删除原数据框相应的一列,
    # 建议尽量少用
    # del df.column_name #不允许# 添加变量列
    v1=1
    v2=2
    c1='na1'
    c2='na2'
    a['cloumn']=pd.Series([v1,v2],index=[0,1])# 根据原数据添加
    a['cloumn']=a['c']+a['cloumn']
    
  • 变量类型的转换

    • float
    • int
    • string
    • bool
    • datetime64[nsr]
    • datetime64[nsr,tz]
    • timedelta[ns]
    • category
    • object
    a_dict={'aa':3000,'bb':5000,'cc':6000}
    b_dict={'aa':120,'bb':350,'cc':670}
    df=pd.DataFrame([a_dict,b_dict])
    dfdf['aa'] = df['aa'].astype(float)#转换为浮点数(float)
    dfdf['aa'] = df['aa'].astype(int)#转换为整数(int)
    dfdf['aa'] = df['aa'].astype(str)#转换为字符串(str)
    dfdf['aa'] = df['aa'].astype(bool)#转换为布尔值(bool)
    dfdf['aa'] = pd.to_datetime(df['aa'])#转换为日期时间(datetime64[ns])df['aa'] = pd.to_datetime(df['aa']).dt.tz_localize('UTC')#转换为带时区的日期时间(datetime64[ns, tz])df['aa'] = pd.to_timedelta(df['aa'])#转换为时间差(timedelta[ns])df['aa'] = df['aa'].astype('category')#转换为类别(category)
    dfdf['aa'] = df['aa'].astype(object)#转换为对象(object)
    df
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/382708.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

乐室预约小程序的设计

管理员账户功能包括:系统首页,个人中心,公告信息管理,乐室信息管理,乐器分类管理,乐器管理,乐器知识管理,用户管理,用户预约管理,取消预约管理,用…

Rust代码答疑报错|Python一对一辅导答疑

Question 你好,我是悦创。 学员答疑: https://code.bornforthis.cn/?id4e72084d-1eaf-44ed-8067-744671491574https://code.bornforthis.cn/?id664ff169-41d6-409f-a05b-02ed42279759 问题代码: // You can bring module paths into sc…

MongoDB文档整理

过往mongodb文档: https://blog.csdn.net/qq_46921028/article/details/123361633https://blog.csdn.net/qq_46921028/article/details/131136935https://blog.csdn.net/qq_46921028/article/details/139247847 1. MongoDB前瞻 1、MongoDB概述: MongoDB是…

分享从零开始学习网络设备配置--任务6.1 实现计算机的安全接入

项目描述 随着网络技术的发展和应用范围的不断扩大,网络已经成为人们日常生活中必不可少的一部分。园区网作为给终端用户提供网络接入和基础服务的应用环境,其存在的网络安全隐患不断显现出来,如非人为的或自然力造成的故障、事故&#xff1b…

手写RPC-令牌桶限流算法实现,以及常见限流算法

为什么需要服务限流、降级 分布式架构下,不同服务之间频繁调用,对于某个具体的服务而言,可能会面临高并发场景。在这样的情况下,提供服务的每个服务节点就都可能由于访问量过大而引起一系列问题,比如业务处理耗时过长、…

px4ctrl里calculateControl的代码解析

px4ctrl的代码里将目标加速度转成飞控的rpy的calculateControl代码 LinearControl::LinearControl(Parameter_t &param) : param_(param) {resetThrustMapping(); } quadrotor_msgs::Px4ctrlDebug LinearControl::calculateControl(const Desired_State_t &des,const …

【Apache Doris】数据副本问题排查指南

【Apache Doris】数据副本问题排查指南 一、问题现象二、问题定位三、问题处理 本文主要分享Doris中数据副本异常的问题现象、问题定位以及如何处理此类问题。 一、问题现象 问题日志 查询报错 Failed to initialize storage reader, tablet{tablet_id}.xxx.xxx问题说明 查…

Linux下docker快速安装gitea

之前在服务器上装的gitlab来管理个人项目,但是gitlab服务启动后能明显感受到占用资源比较严重。最近服务器到期,换了个服务器还没来得及装gitlab,刚好最近接触到gitea,网上是这么说的 占用资源少,适合个人开发者&…

DeepFaceLive黄仙人高清模型416DFM

链接:https://pan.baidu.com/s/1b5nu23Z93bDcxgNyyR3KjA?pwdj8kz 提取码:j8kz 黄羿DF-5M-UDT416_320_80_80_26DFM

【ProtoBuf】通讯录实现(网络版)

Protobuf 还常用于通讯协议、服务端数据交换场景。那么在这个示例中,我们将实现一个网络版本的通讯录,模拟实现客户端与服务端的交互,通过 Protobuf 来实现各端之间的协议序列化。 需求如下: 客户端可以选择对通讯录进行以下操…

关于pycharm上push项目到gitee失败原因

版权声明:本文为博主原创文章,如需转载请贴上原博文链接:https://blog.csdn.net/u011628215/article/details/140577821?spm1001.2014.3001.5502 前言:最近新建项目push上gitee都没有问题,但是当在gitee网站进行了一个…

新生上大学提前去西藏旅游有什么要注意的,语言上该怎么办?

新生前往西藏旅游并提前适应大学生活是一次充满挑战与发现的旅程。在准备过程中,重要的是要对高原反应有所准备,了解其症状并采取预防措施,同时携带必要的防晒和保暖衣物以应对极端的气候条件。在交通和饮食方面,选择安全可靠的选…

第二证券:回购队伍持续扩容!这类公司行动

近期,上市公司密布发布回购方案,一些中期成果较好的公司赫然在列。除了发布正式的回购方案,部分上市公司控股股东、实践控制人、董事长、总经理提议回购公司股份。 绩优股活泼回购 7月23日晚,包括圣泉集团、中科三环、翔楼新材在…

IntelliJ IDEA 直接在软件中更新为最新版

当我们的 IDEA 工具许久没有更新,已经拖了好几个版本,想跨大版本更新,比如从2020.2.1 -> 2023.x.x 此时,我们菜单栏点击 Help -> Check for Updates… ,右下角会有提示更新,如下图: 点…

Unity Shader - 2024 工具篇

目录 IDE 工具建议 IDE工具 Sublime 3 大势所趋,但是Sublime 使用插件还是相当的不习惯 代码跳转 Go to definite IDE 工具建议 () what is the best ide for coding shaderlab - #4 by DaveAstator - Unity Engine - Unity Discussions​​​​​​​I IDE工…

大模型学习笔记 - LLM模型架构

LLM 模型架构 LLM 模型架构 1. LLM 核心模型 Transformer2. 详细配置 2.1 归一化方法2.2 归一化模块位置2.3 激活函数2.4 位置编码 2.4.1 绝对位置编码2.4.2 相对位置编码2.4.3 旋转位置编码 RoPE2.4.4 ALiBi位置编码 2.5 注意力机制 2.5.1 完整自注意力机制2.5.2 稀疏注意力机…

计算机技术基础 (bat 批处理)Note4

计算机技术基础 (bat 批处理)Note4 本节主要讲解一些 bat 批处理文件中的一些特殊符号,包括 , %, > 和 >>, |, ^, & 和 && 和 ||, " ", ,, ;, ()。 回显屏蔽符 回显屏蔽符 : 这个字符在批处理中的意思是关…

数据结构中的八大金刚--------八大排序算法

目录 引言 一:InsertSort(直接插入排序) 二:ShellSort(希尔排序) 三:BubbleSort(冒泡排序) 四: HeapSort(堆排序) 五:SelectSort(直接选择排序) 六:QuickSort(快速排序) 1.Hoare版本 2.前后指针版本 …

【Hot100】LeetCode—416. 分割等和子集

目录 题目1- 思路2- 实现⭐152. 乘积最大子数组——题解思路 3- ACM 实现 题目 原题连接:416. 分割等和子集 1- 思路 理解为背包问题 思路: 能否将均分的子集理解为一个背包,比如对于 [1,5,11,5],判断能否凑齐背包为 11 的容量…

Linux云计算 |【第二阶段】AUTOMATION-DAY2

主要内容: 部署GitLab、配置管理GitLab、CI/CD概述、Jenkins概述、部署Jenkins(初始化、拷贝插件) 一、GitLab概述 GitLab 是一个基于 Web 的 Git 仓库管理工具,它提供了一个集成的开发环境和代码管理平台。GitLab 不仅支持 Git…