pandas行和列的操作

2023-05-16

文章目录

  • Series
    • 创建
    • 增、改
  • DataFrame
    • 创建
  • columns & index的指定

在Pandas中,Series是一维容器,DataFrame表示一个数据表。DataFrame中的任一行、任一列都是Series。

Series

创建

Series的创建可以指定index。

  1. 使用列表创建
s1 = pd.Series(['banana','apple']a, index=["fruit1", "fruit2"])
  1. 使用数组创建
arr = np.arange(1, 5)
s2 = pd.Series(arr, index=["a", "b", "c", "d"])
  1. 使用字典创建
dic = {"name": "丁少侠", "age": 20, "grade": [100, 99, 88]}
s3 = pd.Series(dic)

两种方法效果一样:

s1.fruit1
s1["fruit1"]

还可以使用loc和iloc的方法:

s1.iloc[0]
s1.loc["fruit1"]

增、改

增、改语法相同。

s2["a"]=2 '''修改'''
s2["e"]=5 '''增加'''

del方法

del s2["b"] 

drop方法

x1 = s2.drop("a") '''s2不会发生改变,但去掉"a"的series会付给x1'''
s2.drop("a",inplace=True) '''当指定了inplace=True后,s2才会发生改变'''
s2.drop(["a","c"],inplace=True) '''删除多个index'''

DataFrame

创建

dataFrame的创建可以指定index和columns

  1. 使用字典创建
    字典的keys将作为dataFrame中的columns
data={"one":np.random.randn(4),"two":np.linspace(1,4,4),"three":['zhangsan','李四',999,0.1]}
df=pd.DataFrame(data,index=[1,2,3,4])
  1. 使用数组创建
data=np.random.randn(6,4)
df=pd.DataFrame(data,columns=list('ABCD'),index=[1,2,'a','b','2006-10-1','第六行'])

  1. 按列读取
  • 单列
df.A
df['A']
  • 多列
df[['A',"B"]]
  • iloc
df.iloc[:1]    #读取第一列
df.iloc[:,1:3] #读取第1列到第3列
df.iloc[:,2:]  #读取第2列之后的数据
df.iloc[:,:3]  #读取前3列数据
  • 部分连续的取法
df.iloc[:,[1,4,6]+list(range(8,12))]
  1. 按行读取
  • 单行
df.loc['行标签']
df.loc[['行标签']]
  • 多行
df.loc[['行标签1','行标签2','行标签n']]
  • iloc
df.iloc[1]
df.iloc[[1,2]]
df.iloc[1:4]
  • 部分连续的取法
df.iloc[[1,4,6]+list(range(8,12))]

  • 直接增:
df['列名']=[数据]
  • 用concat增加:
dataAddCol=pd.DataFrame({'e':[11,12,12]})
dataSet=pd.concat([dataSet,dataAddCol],axis=1)
  • 用concat增加:
dataAddRow=pd.DataFrame([[5,6,7,8]],columns=['a','b','c','d'])
dataSet=pd.concat([dataSet,dataAddRow])

axis默认为0,也就是默认按行删除

dataSet.drop([dataSet.columns[0]],inplace=True,axis=1)#仅知道列号
dataSet.drop(['b'],inplace=True,axis=1)#知道列名
dataSet.drop(dataSet.index[6],inplace=True)#仅知道行号
dataSet.drop([6],inplace=True)#知道行名

columns & index的指定

  1. 创建DataFrame的时候可以使用colums参数指定列的顺序,也可以使用index来指定行索引
name_list = pd.DataFrame(data = {'Occupation':['Teacher','IT Engineer'],'Age':[28,36]},
						 columns=['Age','Occupation'], 
						 index=['Tom','Bob'])
  1. set_index用于将某一列指定为index
name_list.set_index('Occupation',drop=False) '''指定一列。
							     参数drop默认为True,意为将该列设置为索引后从数据中删除
								 如果设为False,将继续在数据中保留该行。'''
data.set_index(['one','two']) '''指定多列'''
  1. 如果要设置的index不在数据中,可以通过.index进行指定。columns可通过.columns修改
df.index=['a','b','c','d'] '''修改index'''
df.columns=['a','b','c','d'] '''修改columns''' 
  1. 重置index,参数drop默认值为False,意为将原来的索引做为数据列保留,如果设为True,原来的索引会直接删除。
df.reset_index(drop=True)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

pandas行和列的操作 的相关文章

随机推荐

  • docker overlay2 是存放什么的?

    docker overlay2是Docker中的存储驱动之一 用于管理镜像和容器层的数据 它使用最小存储空间来存储像层这样的临时数据 overlay2本质上是多层存储驱动 它将镜像和容器层都视为独立的匿名临时文件系统 然后通过联合挂载将这些
  • Google浏览器下载地址

    官网下载 https www google cn chrome 旧版本下载地址 https www chromedownloads net chrome64win https www slimjet com chrome google ch
  • docker网卡的IP地址修改

    Docker容器启动后 默认会在主机上分配一个网卡 该网卡对应一个网络命名空间 并在这个网络命名空间下随机分配一个IP地址 如果想修改Docker容器的IP地址 有以下几种方法 修改Docker宿主机的Docker网络 可以在Docker主
  • SNMP连接失败

    SNMP连接失败常见的原因有以下几个 版本不匹配 SNMP有SNMPv1 SNMPv2c SNMPv3等版本 客户端和服务器版本必须匹配 否则会连接失败 需要确认客户端和服务器所支持的SNMP版本 选择一个双方都兼容的版本进行连接 社区名不
  • windows安装GO语言环境

    GO语言版本 Windows 平台和 Mac 平台推荐下载可执行文件版 xff0c Linux 平台下载压缩文件版 版本 xff1a 1 16 8 出现上面这个界面就说明已经安装好了 查看GO版本 可以打开终端窗口 xff0c 输入go v
  • 3par命令集

    3PAR是惠普公司的存储产品 它提供了基于CLI的管理终端来管理存储系统 主要的3PAR CLI命令有 show 显示系统信息 showsys 显示系统概况信息shownode 显示节点信息showport 显示端口信息showdisks
  • 华为欧拉系统RPM强制卸载libffi-devel

    查看欧拉系统有没有安装这个包 yum list span class token operator span span class token function grep span libffi devel 准备离线下载时 xff0c 发现
  • 最全Arrays.sort函数举例

    Arrays sort 的作用是对括号中的数组进行排序 xff0c 时间复杂度O xff08 n logn xff09 xff0c 方法返回值为void 是在原来数组的空间基础上进行升序排序 xff0c 因此不需要定义一个数组接收它 xff
  • 【无标题】驱动设计思想P9- linux驱动(韦东山)

    linux驱动 xff08 韦东山 xff09 驱动设计思想P9 linux 驱动 61 驱动框架 43 硬件操作 61 驱动框架 43 单片机 面向对象 字符设备驱动程序抽象出file operation结构体对硬件部分抽象为led op
  • Ubuntu16.04 安装ROS 过程中遇到的问题

    操作系统 xff1a Ubuntu16 04 ROS版本 xff1a Kinetic 纯入门 xff0c 安装过程错误百出 xff0c 几乎是一步一个报错 xff0c 每执行一个命令就要各种查找解决方法 xff0c 终于用一个下午加晚上的时
  • Github学习心得(3):项目的修改

    书接上回Github创建版本库 xff0c 我们已经成功地创建了一个版本库 xff0c 并且上传了readme txt文件 在实际项目中 xff0c 我们总是要对代码进行修改 xff0c 那么就需要及时地更新Github版本库中的文件 以本
  • 解决Keil全局搜索时无法跳转的问题

    检查一下自己的工程文件路径中是否有英文括号 xff0c 如果有则删掉
  • 阿木实验室的普罗米修斯仿真平台搭建的难点和坑点

    普罗米修斯仿真实验平台搭建的难点解决 0 我为什么要辛苦搭环境 xff1f 前一段时间阿木实验室提供了一个搭好环境的镜像 xff0c 凭阿木币购买 xff0c 是真的好用 xff0c 阿木币嘛 xff0c 签一签道就会有 关于这个镜像其实还
  • Visual Studio Code无法监视此大工作空间中的文件更改的解决办法

    Visual Studio Code无法监视此大工作空间中的文件更改 xff08 错误ENOSPC xff09 当您看到此通知时 xff0c 表明VS Code文件监视程序用尽了句柄 xff0c 因为工作空间很大并且包含许多文件 在调整平台
  • Ubuntu增加交换分区即swap方法

    用交换文件的方式添加交换分区 xff0c 如下 sudo su 进入管理员模式 xff0c 会提示输入密码 cd usr mkdir swap cd swap dd if 61 dev zero of 61 swapfile bs 61 1
  • 为什么px4源码里找不到main函数?——从hello sky理解px4的编程规范

    如果你刚自学了c 43 43 xff0c 准备开始看px4的源码 xff0c 但翻来覆去找了半天没有找到一个标准的main 究其原因 xff0c 在nuttx系统里 xff0c 程序入口不是main xff0c 所以找不到任何main 如果
  • matlab提取外接盒、围盒、凸包和骨架

    宁收宁马的费呢 xff01 老子自己做的 xff0c 免费提供该大家 xff0c 卖资料的垃圾 xff0c 能收几个钱 拍一幅含多个人体目标的图像 xff0c 利用外接盒 围盒和凸包对每个人体目标区域进行表达 xff0c 并提取其骨架 ma
  • QLearning算法实现(python)

    文章目录 环境要求QLearning算法简介算法实现预设值Q表定义行为环境反馈环境更新Q学习主循环 环境要求 开发环境 xff1a python3 需要导入的包 xff1a numpy pandas time QLearning算法简介 Q
  • HTTP工作原理

    文章目录 简介 HTTP与HTTPS端口区别HTTP请求的方法OPTIONSHEADGETPOSTPUTDELETETRACECONNECT注意 xff1a HTTP 请求 响应的步骤 简介 HTTP协议定义Web客户端如何从Web服务器请
  • pandas行和列的操作

    文章目录 Series创建查增 改删 DataFrame创建查增删 columns amp index的指定 在Pandas中 xff0c Series是一维容器 xff0c DataFrame表示一个数据表 DataFrame中的任一行