Python Pandas 数据拼接/排序/重置

2023-11-06

一、数据拼接

准备数据:

import pandas as pd

d_1 = {'name' : pd.Series(['a', 'b', 'c', 'd'], index=[0,1,2,3]),
   'attri_1' : pd.Series([1.1, 2.2, 3.3, 4.4,5.5], index=[0,1,2,3,4]),
     'attri_2' : pd.Series([1, 2, 3, 4, 5], index=[0,1,2,3,4])
     }

d_2 = {'name' : pd.Series(['aa', 'bb', 'cc', 'dd','ee'], index=[0,1,2,3,4]),
   'attri_1' : pd.Series([2.1, 3.2, 4.3, 5.4, 6.5], index=[0,1,2,3,4]),
     'attri_2' : pd.Series([1, 2, 3, 4, 5], index=[0,1,2,3,4])
     }

df_1 = pd.DataFrame(d_1)

df_2 = pd.DataFrame(d_2)

print(df_1)
print(df_2)

运行结果:

  name  attri_1  attri_2
0    a      1.1        1
1    b      2.2        2
2    c      3.3        3
3    d      4.4        4
4  NaN      5.5        5
  name  attri_1  attri_2
0   aa      2.1        1
1   bb      3.2        2
2   cc      4.3        3
3   dd      5.4        4
4   ee      6.5        5

1.1 行拼接(纵向,第 0 维)pd.concat([df1,df2])

df_3 = pd.concat([df_1,df_2])
print(df_3)

运行结果:

  name  attri_1  attri_2
0    a      1.1        1
1    b      2.2        2
2    c      3.3        3
3    d      4.4        4
4  NaN      5.5        5
0   aa      2.1        1
1   bb      3.2        2
2   cc      4.3        3
3   dd      5.4        4
4   ee      6.5        5

注意事项:

  • 这里的两组数据列标签需要一致
  • 拼接后的 index 还是保留原先的

1.2 列拼接(横向,第 1 维)pd.concat([df1,df2], axis=1)

df_4 = pd.concat([df_1,df_2], axis=1)
print(df_4)

运行结果:

  name  attri_1  attri_2 name  attri_1  attri_2
0    a      1.1        1   aa      2.1        1
1    b      2.2        2   bb      3.2        2
2    c      3.3        3   cc      4.3        3
3    d      4.4        4   dd      5.4        4
4  NaN      5.5        5   ee      6.5        5

二、排序

准备数据:

d = {'name' : pd.Series(['a', 'b', 'c', 'd'], index=[0,1,2,3]),
   'attri_1' : pd.Series([5.1, 4.2, 2.3, 1.4,3.5], index=[0,1,2,3,4]),
     'attri_2' : pd.Series([1, 2, 3, 4, 5], index=[0,1,2,3,4])
     }

df = pd.DataFrame(d)

print(df)

运行结果:

  name  attri_1  attri_2
0    a      5.1        1
1    b      4.2        2
2    c      2.3        3
3    d      1.4        4
4  NaN      3.5        5

2.1 从小到大排序(默认)df.sort_values()

print(df.sort_values('attri_1')) # 排序后,index 也会相应变化

运行结果:

  name  attri_1  attri_2
3    d      1.4        4
2    c      2.3        3
4  NaN      3.5        5
1    b      4.2        2
0    a      5.1        1

2.2 从大到小排序(逆序)df.sort_values(ascending =False)

print(df.sort_values('attri_1',ascending =False))
print(df) # 这里可以看到,排序不会直接作用于原数据,所以这里打印出来的还是原来的形式

运行结果:

  name  attri_1  attri_2
0    a      5.1        1
1    b      4.2        2
4  NaN      3.5        5
2    c      2.3        3
3    d      1.4        4
  name  attri_1  attri_2
0    a      5.1        1
1    b      4.2        2
2    c      2.3        3
3    d      1.4        4
4  NaN      3.5        5

2.3 对 index 进行排序 df.sort_index()

df_5 = df.sort_values('attri_1')

print(df_5)
print(df_5.sort_index())

运行结果:

  name  attri_1  attri_2
3    d      1.4        4
2    c      2.3        3
4  NaN      3.5        5
1    b      4.2        2
0    a      5.1        1
  name  attri_1  attri_2
0    a      5.1        1
1    b      4.2        2
2    c      2.3        3
3    d      1.4        4
4  NaN      3.5        5

2.4 对 index 进行重置(变成默认的0~n)df.reset_index()

d = {
   'attri_1' : pd.Series([5.1, 4.2, 2.3, 1.4,3.5], index=['a', 'b', 'c', 'd', 'e'])
     }
df = pd.DataFrame(d)

print(df)
print(df.reset_index()) # 这里重置了 index ,把原来的 index 变为列,标签为 'index'

运行结果:

   attri_1
a      5.1
b      4.2
c      2.3
d      1.4
e      3.5
  index  attri_1
0     a      5.1
1     b      4.2
2     c      2.3
3     d      1.4
4     e      3.5

三、对列标签重命名 df.rename()

d = {
   'attri_1' : pd.Series([5.1, 4.2, 2.3, 1.4,3.5], index=['a', 'b', 'c', 'd', 'e'])
     }
df = pd.DataFrame(d)
print(df)
print(df.rename(columns={'attri_1':'new'}))

运行结果:

   attri_1
a      5.1
b      4.2
c      2.3
d      1.4
e      3.5
   new
a  5.1
b  4.2
c  2.3
d  1.4
e  3.5
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python Pandas 数据拼接/排序/重置 的相关文章

  • Django 管理员更改用户密码

    我是 Django 新手 我有以下代码 Model class MyUser AbstractUser profile models OneToOneField Profile null True on delete models PROT
  • Tensorflow 导入错误:没有名为“tensorflow”的模块

    我在 Windows Python 3 5 Anaconda 环境中安装了 TensorFlow 验证成功 有警告 tensorflow C gt python Python 3 5 3 英特尔公司 默认 2017 年 4 月 27 日 1
  • 如何选择单选按钮?

    我在用mechanize我正在尝试从单选按钮列表中选择一个按钮 该列表有 5 项 如何选择第一项 文档没有帮助我 gt gt gt br form
  • 如何向未知用户目录读取/写入文件?

    我正在尝试从用户目录 C Users USERNAME Test Source 读取和写入文件 但我未能成功找到任何有关如何自动检测用户名的资源 其中的 USERNAME上面的例子 或者无论如何 我可以让它读取和写入目录 而不需要知道用户名
  • Django管理命令是在单独的进程中执行的吗?

    Django 有很多管理命令 此外 我们还可以编写自己的命令 进行 shell 调用后会发生什么python manage py XXX 代码是否会在从 shell 启动的进程中执行 或者 shell 进程只是与执行命令的主 Django
  • 为什么 Python 中的无分支函数和内置函数速度较慢?

    我发现了 2 个无分支函数 它们可以在 python 中查找两个数字的最大值 并将它们与 if 语句和内置 max 函数进行比较 我认为无分支或内置函数将是最快的 但最快的是 if 语句函数 有人知道这是为什么吗 以下是功能 If 语句 2
  • 我应该将Python的pyc文件添加到.dockerignore吗?

    我见过几个例子 dockerignorePython 项目的文件 其中 pyc文件和 或 pycache 文件夹被忽略 pycache pyc 由于无论如何这些文件 文件夹都会在容器中重新创建 我想知道这样做是否是一个好习惯 是的 这是一个
  • Pandas系列矢量化文本处理

    我想使用矢量化操作改进我的 Pandas 代码 假设我有一个简单的 DataFrame 其中有一个文本列 其中可能包含 url Column1 0 hello http www google com 1 bye www mail com w
  • 将多个 csv 文件连接成具有相同标头的单个 csv

    我目前正在使用以下代码导入 6 000 个 csv 文件 带标题 并将它们导出到单个 csv 文件 带单个标题行 import csv files from folder path r data US market merged data
  • django 密码重置功能中出现 NoReverseMatch 错误

    我正在尝试在 django 中实现密码重置功能 下面是我的代码 urls py urlpatterns patterns url r signup accounts views signup name signup email url r
  • 调度算法,找到设定长度的所有非重叠区间

    我需要为我的管理应用程序实现一种算法 该算法将告诉我何时可以将任务分配给哪个用户 我实现了一个蛮力解决方案 它似乎有效 但我想知道是否有更有效的方法来做到这一点 为了简单起见 我重写了算法以对数字列表进行操作 而不是数据库查询等 下面我将尝
  • 如何在Python中的字符串中插入变量值

    这是一个简单的例子 amount1 input Insert your value amount2 input Insert your value print Your first value is amount1 your second
  • Keras CNN 回归模型损失低,准确度为 0

    我在 keras 中遇到这个 NN 回归模型的问题 我正在研究一个汽车数据集 以根据 13 个维度预测价格 简而言之 我已将其读取为 pandas 数据帧 将数值转换为浮点数 缩放值 然后对分类值使用 one hot 编码 这创建了很多新列
  • python 3 configparser.read() 在给定不存在的文件时不会引发异常

    当我尝试使用 configparser read 读取不存在的文件时 我认为它应该引发异常 事实并非如此 它返回一个空列表 显然 我可以测试空列表并引发异常 在我看来 如果 configparser read 引发 FileNotFound
  • 当输入是 DataFrame 时,在seaborn中对箱线图进行分组

    我打算在一个图中绘制多个列pandas dataframe 全部按另一列分组 使用groupby inside seaborn boxplot 对于类似的问题 这里有一个很好的答案matplotlib matplotlib 分组箱线图 ht
  • 通过 Selenium 和 python 切换到 iframe

    我如何在硒中切换到这个 iframe 只知道 您可以使用 XPath 来定位 iframe driver find element by xpath iframe name Dialogue Window Then switch to th
  • 删除aws beanstalk上的uuid python包

    这是针对所提出问题的后续帖子 问题here https stackoverflow com questions 44421761 flask beanstalk deployment errors 以防万一对其他人有用 自从第一篇文章以来
  • 在绘图中的线间隙之间添加注释

    I have a graph like this 而不是在上面的日子symbol 我想知道是否有办法可以在行之间添加此注释 从一个点到另一个点 如果以防万一 这可能是重复的 我深表歉意 This is my expected output
  • Python 3d 金字塔

    我是 3D 绘图新手 我只想用 5 个点建造一个金字塔并通过它切出一个平面 我的问题是我不知道如何填充两侧 points np array 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 fig plt figure ax fi
  • python nltk从句子中提取关键字

    我们要做的第一件事 就是杀掉所有律师 威廉 莎士比亚 鉴于上面的引用 我想退出 kill and lawyers 作为两个突出的关键词来描述句子的整体含义 我提取了以下名词 动词 POS 标签 First NNP thing NN do V

随机推荐

  • 微信小程序之拨打电话

    微信小程序拨打电话功能的实现是采用wx makePhoneCall 具体方法如下 wxml lt view gt 电话 15888888888 lt view data ph 15888888888 bindtap callPhone gt
  • 【Android 12 AOSP学习】Android 12源码下载编译

    一 搭建环境 liunx系统 Ubuntu20 04 Android系统 12 1 安装 Repo 下载Repo前先安装 curl 库 sudo apt get install curl 下载好 curl 库后 设置清华源下载 Repo 然
  • 前端 JavaScript 提取 JSON 数据

    原文地址 假如我们从后端接收到了以下 JSON 数据 id 1 name Xu Albter age 18 使用 JSON parse 方法处理以上数据 将其转换为 JavaScript 对象 var obj JSON parse id 1
  • select函数缺陷分析

    与poll和epoll不同 select函数是事件为单位组织文件描述符 监视的行为较为单一 函数原型 int select int nfds fd set readfds fd set writefds fd set exceptfds s
  • 链表应用:两数相加

    关于链表 链表是一种极其重要的数据结构 因为对指针和抽象思维的要求较高 一度成为身边同学最痛恨的对象 我在将这里演示如何使用链表制作一个可以按位储存数字的容器 鉴于本人亦初学者 有错误请各位在评论区指正 这里还是以介绍链表为主 算法部分苦于
  • SpringCloud和微服务介绍

    SpringCloud介绍 微服务架构是什么 微服务实例的开发 服务的注册与发现 负载均衡 服务容错 API网关 分布式配置中心 调试 部署 持续集成 SpringCloud介绍 SpringCloud是在SpringBoot的基础上构建的
  • 一个完整详细的二维SVR案例分析过程

    文章目录 案例介绍 数据预处理 函数拟合仿真 SVR建模 模型调参 案例介绍 首先 此次案例是以油气开发为背景 选取加粗样式其中重要的两个参数含油饱和度和孔隙度分别作为此次案例的自变量和因变量进行试验 按照正常的案例分析步骤进行操作 此次为
  • 神经网络(ANN)

    算法介绍 概念 人工神经网络是由具有适应性的简单单元组成的广泛并行互连的网络 它的组织能够模拟生物神经神经系统对真实世界物体所作出的交互反应 在实际应用中 80 90 的人工神经网络模型是采用误差反转算法或其变形形式的网络模型 一个神经网络
  • 小程序的配置文件和小程序的模板语法

    微信小程序 小程序的配置文件 一个小程序应用程序会包括 会有最基本的两种配置文件 一种是全局的 app json 一种是页面自己的 page json 注意 配置文件中不可以出行注释 1 1 全局配置文件 app json app json
  • 主题模型(Topic Model)与LDA算法

    Topic Model 主题模型 Topic Model 是以非监督学习的方式对文档的隐含语义结构 latent semantic structure 进行聚类 clustering 的统计模型 主题模型认为在词 word 与文档 docu
  • 第十三章:QT多线程(QThread)

    回顾 第一章 Qt的概述 第二章 在Ubuntu编写第一个Qt程序 第三章 Qt的字符串和字符编码 第四章 Qt的信号和槽 第五章 Qt容器窗口 父窗口 第六章 面向对象的Qt编程 第七章 Qt设计师使用 designer 第八章 Qt创造
  • Unittest框架多个testcase之间全局变量的调用

    unittest模块进行接口自动化的时候遇到以下场景 新增 修改 查看 删除一个项目配置流程 但是每次用真实数据请求 数据库就会增加很多脏数据 所以就产生了数据一条龙服务 从新增到删除 涉及到了Unittest下个接口需要调用上个接口的返回
  • mysql数据库访问控制查询_MySQL ------ 管理用户对数据库的访问控制(GRANT 与 REVOKE)(二十九)...

    数据库服务器通常包含着关键的数据 所以为了确保这些数据的安全和完整需要要利用访问控制 MySQL服务器的安全基础是 用户应该对他们需要的数据具有适当的访问权 既不能多也不能少 即用户不能对过多的数据具有访问权 访问控制 需要给用户提供他们所
  • 电子计算机的发展史

    1 电子计算机元器件变化 继电器 真空管 晶体管 2 计算机的出现背景 20世纪人口暴增 科学与工程进步迅速 航天计划成形 以上导致数据的复杂度急剧上升 计算量暴增 对于计算的自动化 高速有迫切的需求 3 电子计算机的发展 1945年 哈佛
  • antd table合并行或者列(动态添加合并行、列)

    antd table合并行或者列 动态添加合并行 列 表头只支持列合并 使用 column 里的 colSpan 进行设置 表格支持行 列合并 使用 render 里的单元格属性 colSpan 或者 rowSpan 设值为 0 时 设置的
  • Ubuntu系统安装企业微信和微信

    一 Ubuntu16 04安装企业微信 1 安装git工具 sudo apt install wget g git 2 安装deepin wine git clone https gitee com wszqkzqk deepin wine
  • UE4 行为树装饰器(Decorator)简单实用说明(1)

    在行为树标准模型中 条件语句为 Task 叶节点 除成功和失败外不执行任何操作 虽然也可以使用传统的条件 tasks 但还是强烈推荐您使用 Decorator 系统作为条件语句 使用 decorators 而非 tasks 作为条件语句有多
  • 光猫超级账号密码、宽带账号密码 获取

    光猫超级账号密码 宽带账号密码 获取 目的与起因 租房宽带是电信的 Ipv6 之前笔记本使用 Ipv6 地址可以直接被手机通过移动网络无需中转进行远程桌面连接的 目前尝试了在局域网内是可以实现的 应该是电信屏蔽了3389端口 在光猫路由器修
  • tcp 序列号

    父 tcp 状态 from异常流程 个人渣记录仅为自己搜索用的博客 CSDN博客 转载请注明出处 6 TCP6 TCP 协议 序号和确认号 tcp 最终确认序号 Allen 的博客 CSDN博客6 TCP 接下来的内容是学习后续内容的基础
  • Python Pandas 数据拼接/排序/重置

    Pandas 数据拼接 排序 重置 一 数据拼接 1 1 行拼接 纵向 第 0 维 pd concat df1 df2 1 2 列拼接 横向 第 1 维 pd concat df1 df2 axis 1 二 排序 2 1 从小到大排序 默认