首页 > 其他分享 >pandas库简单用法总结

pandas库简单用法总结

时间:2023-04-14 23:23:24浏览次数:34  
标签:总结 刻晴 df 标签 用法 须弥 妮露 pandas 属性

简介

pandas 是基于NumPy 的一种工具,主要用途是做数据分析,对于初学者,比较常用的就是处理csv或者excel文件

DataFrame数据结构

DataFrame组成

DataFrame 是 Pandas 的重要数据结构之一,也是在使用 Pandas 进行数据分析过程中最常用的结构之一。DataFrame 一个表格型的数据结构,既有行标签(index),又有列标签(columns),它也被称异构数据表,所谓异构,指的是表格中每列的数据类型可以不同,比如可以是字符串、整型或者浮点型等。其结构如下所示:

index 所属 属性
0 刻晴 璃月
1 妮露 须弥
2 纳西妲 须弥

最左一列的index是DataFrame的行索引,DataFrame 会自带行标签索引,默认为“隐式索引”即从 0 开始依次递增,行标签与 DataFrame 中的数据项一一对应。数据以行和列形式来表示,其中每一列表示一个属性,而每一行表示一个条目的信息。

常用DataFrame创建方式

目标数据结构:

     名  所属 属性
0   刻晴  璃月  雷
1   妮露  须弥  水
2  纳西妲  须弥  草

1. 使用二维列表创建

import pandas as pd

datas = [['刻晴','璃月','雷'],
         ['妮露','须弥','水'],
         ['纳西妲','须弥','草']]
df = pd.DataFrame(datas,columns=['名','所属','属性'])
print(df)

(1)二维列表中的每个子列表即为每行的条目数据,columns参数为列标签

(2)列标签与条目数据按位置对应,需要注意的是条目数据(子列表)长度不能超过列标签数量

(3)行标签index无需设置,默认为np.arange(n),n为二维列表的长度

2. 使用字典嵌套列表创建

import pandas as pd

datas = {'名':['刻晴','妮露','纳西妲'],'所属':['璃月','须弥','须弥'],'属性':['雷','水','草']}
df = pd.DataFrame(datas)
print(df)

(1)字典的键为列标签,也就是列名

(2)值为该列对应的数据,以列表形式传入,列表的元素索引与行标签index对应

(3)行标签index无需设置,默认为np.arange(n),n为字典的值中最长列表的长度。也可设置自定义行标签,如下:

import pandas as pd

datas = {'名':['刻晴','妮露','纳西妲'],'所属':['璃月','须弥','须弥'],'属性':['雷','水','草']}
df = pd.DataFrame(datas,index=['大保底1','大保底2','大保底3'])
print(df)

结果为

        名  所属 属性
大保底1   刻晴  璃月  雷
大保底2   妮露  须弥  水
大保底3  纳西妲  须弥  草

3.使用列表嵌套字典创建

import pandas as pd

datas = [{'名':'刻晴','所属':'璃月','属性':'雷'},
         {'名':'妮露','所属':'须弥','属性':'水'},
         {'名':'纳西妲','所属':'须弥','属性':'草'}]
df = pd.DataFrame(datas)
print(df)

(1)列表中的每个子字典为每行的条目数据

(2)子字典中的键为列标签,值为该列所对应的数据

(3)列表中字子字典的索引与行标签index对应

(4)行标签index无需设置,默认为np.arange(n),n为列表的长度(子字典的数量)。也可设置自定义行标签,方式与第二种方法一致

DataFrame数据访问

 1.按列标签获取

df的结构如下所示

datas = [['刻晴','璃月','雷'],
         ['妮露','须弥','水'],
         ['纳西妲','须弥','草']]
df = pd.DataFrame(datas,columns=['名','所属','属性'])
     名  所属 属性
0   刻晴  璃月  雷
1   妮露  须弥  水
2  纳西妲  须弥  草

使用df[列标签],即可获取某一列的值,例如

print(df['名'])

结果为:

1     刻晴
3     妮露
5    纳西妲
Name: 名, dtype: object

按列标签获取,获取'名'这一列的数据

2. 按行号切片获取

print(df[0:2])

结果为:

    名  所属 属性
1  刻晴  璃月  雷
3  妮露  须弥  水

df的结构同上,此语法可以获取第0行到第2行的数据。注意:

(1)此时必须写行号的切片,若只写一个数字,会被解释为第1中情况的列标签

(2)此切片遵循左闭右开区间规则

3. loc方法

df的结构如下所示

import pandas as pd
datas = [['刻晴','璃月','雷'],
         ['妮露','须弥','水'],
         ['纳西妲','须弥','草']]
df = pd.DataFrame(datas,columns=['名','所属','属性'],index=['1','3','5'])
     名  所属 属性
1   刻晴  璃月  雷
3   妮露  须弥  水
5  纳西妲  须弥  草

loc方法的基本语法为:

DateFrame.loc[行标签:列标签]

(1)对于单一行,或者单一列,可以直接传入对应的行标签和列标签,例如:

print(df.loc['1','名'])

结果为:刻晴

 注意此时的行标签为自定义的字符串'1','3','5',而非默认的0,1,2

(2)对于连续的多行,或者连续的多列,可以使用类似于切片的语法:[起点标签:终点标签]此时为左闭右闭区间,例如:

print(df.loc['1':'5','名':'属性'])

结果为:

     名  所属 属性
1   刻晴  璃月  雷
3   妮露  须弥  水
5  纳西妲  须弥  草

从行标签为'1'的行,到行标签为'5'的行,从列标签为'名'的列到列标签为'属性'的列,按顺序连续取,并且遵循左闭右闭的规则

(3)对于特定的某些行,或者特定的某些列,可以以行标签列表或列标签列表的形式传入,例如:

print(df.loc[['1','5'],['名','属性']])

结果为:

     名 属性
1   刻晴  雷
5  纳西妲  草

筛选出行标签为'1'、'5'的行,以及列标签为'名','属性'的列

(4)loc方法中的列标签可以省略,默认取对应行的所有列,例如:

print(df.loc[['1','5']])

结果为:

     名  所属 属性
1   刻晴  璃月  雷
5  纳西妲  须弥  草

4. iloc方法

iloc的基本语法为:

DateFrame.iloc[行号:列号]

iloc使用方法和loc基本一致,都可以用直接传入、切片、列表等方式

但iloc和loc的区别在于:

(1)loc中的行和列是标签,而iloc中的行和列是序号,序号从0开始,例如:

     名  所属 属性
1   刻晴  璃月  雷
3   妮露  须弥  水
5  纳西妲  须弥  草

行标签是'1'、'3'、'5',列标签是'名'、'所属'、'属性',而行号是0、1、2,列号也是0、1、2

(2)loc切片是左闭右闭区间,而iloc是左闭右开区间

例如想从

     名  所属 属性
1   刻晴  璃月  雷
3   妮露  须弥  水
5  纳西妲  须弥  草

得到:

     名  所属 
1   刻晴  璃月 
3   妮露  须弥  

两种函数的写法分别为:

loc:

print(df.loc['1':'3','名':'所属'])

iloc:

print(df.iloc[0:2,0:2])

 

标签:总结,刻晴,df,标签,用法,须弥,妮露,pandas,属性
From: https://www.cnblogs.com/haruyuki/p/17317900.html

相关文章

  • 4.14每日总结
    今天做了什么:根据用户消费比例给出消费建议,识别微信截图信息并添加到记账页面,学习了cookie和session的使用遇到了哪些问题:拍照获得的bitmap的data有限制大小,导致识别图片模糊明天打算做什么:攻克拍照获得图片模糊......
  • 【考后总结】NOI 统一省选 2023
    文化课补完了,但是考试考炸了,所以来补题。D1T1火车站station实际上只需要判断从\(x\)能否一直向一个方向移动且每个位置能不能作为这个方向的终点站。区间覆盖差分一下即可。点击查看代码intn,m,x;intst[maxn][2],cov[maxn];boolvis[maxn];intmain(){freope......
  • 每日总结 4..14
    今天到该完成了售卖机的页面以及流程。进行了售卖记录的统计并存入数据库。为之后的每日收入汇总做好基础。   ......
  • 4月14号总结
    packagecom.itheima.mapper;importcom.itheima.pojo.Brand;importorg.apache.ibatis.annotations.Insert;importorg.apache.ibatis.annotations.Param;importorg.apache.ibatis.annotations.ResultMap;importorg.apache.ibatis.annotations.Select;importjava.......
  • 4.14每日总结
      今天学习了人脸识别接口(百度)的调用。  昨天自己学习的过程中,用虹软的人脸识别接口,sdk啥的搞不清楚,而且搜了几个代码一直不能用。  遇见的问题:团队中代码的整合问题,前后端代码如何分离等部分还是不太清楚。......
  • 每日总结2023-04-14
    今天对Android界面进行了优化,对与以前的代码略有改动这是主界面,包括listView查看每日信息,补货按钮,more按钮:更多信息<?xmlversion="1.0"encoding="utf-8"?><RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://sche......
  • scrum项目冲刺_Day3会议总结
    今日团队任务:图片转excel(5天)前端开发(需团队风格统一)调用接口(后端),json数据->excel前后端连接           任烁玚(进行中)            图片转html(8天)前端开发(需团队风格统一)图片转为pdf(存储)pdf转html(调用接口)[html存储到数据库]前后台数据同......
  • 每日总结-23.4.14
    <%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"&g......
  • Java Stream常见用法汇总,开发效率大幅提升
    本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点,欢迎star~Github地址如果访问不了Github,可以访问gitee地址。gitee地址Java8新......
  • 4.14号今日总结
    字典另一个非常有用的Python内建数据类型是字典。序列是以连续的整数为索引,与此不同的是,字典以关键字为索引,关键字可以是任意不可变类型,通常用字符串或数值。理解字典的最佳方式是把它看做无序的键=>值对集合。在同一个字典之内,关键字必须是互不相同。一对大括号创建一个空......