Pandas合并数据集

第1关:Concat与Append操作

import pandas as pd"""
data.csv和data1.csv是两份与各国幸福指数排名相关的数据,为了便于查看排名详情,所以需要将两份数据横向合并。数据列名含义如下:列名    说明
Country (region)    国家
Ladder    排名
SD of Ladder    排名的偏差
Positive affect    积极影响
Negative affect    消极影响
Social support    社会福利
Freedom    自由度
Corruption    腐败程度
Generosity    慷慨程度
Log of GDP per capita    人均GDP的对数
Healthy life expectancy    健康程度读取step1/data.csv和step1/data1.csv两份数据;
首先将两个数据横向合并;
将索引设为排名(Ladder)列;
填充空值为0;
具体要求请参见后续测试样例。
"""def task1():# ********** Begin **********## 读取数据d1 = pd.read_csv('step1/data.csv', header=0)d2 = pd.read_csv('step1/data1.csv', header=0)# 横向合并,将索引设为排名(Ladder),填充空值为0d3 = pd.concat([d1, d2], axis=1)result = d3.set_index('Ladder').fillna(0)# ********** End **********#return result

第2关:合并与连接

import pandas as pd
def task2(dataset1,dataset2,dataset3):# ********** Begin **********#data = pd.DataFrame(dataset1)data1 = pd.DataFrame(dataset2)data2 = pd.DataFrame(dataset3)data2.rename(columns={"id": "user_id"}, inplace=True)data3 = pd.merge(data, data1, on="user_id", how="left")data4 = pd.concat([data2, data3], ignore_index=True)result = data4.sort_values("user_id").drop_duplicates("user_id")# ********** End **********#return result

第3关:案例:美国各州的统计数据

import pandas as pd
import numpy as npdef task3():# ********** Begin **********## 读取三个csv文件pop = pd.read_csv('./step3/state-population.csv')areas = pd.read_csv('./step3/state-areas.csv')abbrevs = pd.read_csv('./step3/state-abbrevs.csv')# print(pop)# print(areas)# print(abbrevs)# 合并pop和abbrevs并删除重复列# pop的state/region列与abbrevs的abbreviation列进行合并,# 还需要通过how='outer'确保数据没有丢失,# 得到合并后的结果,发现有一个重复列需要删除,所以,删除abbreviation列;pa = pd.merge(pop, abbrevs, left_on=['state/region'], right_on=['abbreviation'], how='outer')pa = pa.drop('abbreviation', axis=1)"""# 来全面检查一下数据是否有缺失,对每个字段逐行检查是否有缺失值,通过结果可知只有population和state列有缺失值;for i in pa:print(i, pa[i].isnull().any())# 输出发现state/region = PR的对应的population和state都是空值print(pa[pa['population'].isnull()])# US对应的state也是空值print(pa[pa['state'].isnull()])"""# 填充对应的全称pa.loc[pa['state/region'] == 'PR', 'state'] = 'Puerto Rico'pa.loc[pa['state/region'] == 'USA', 'state'] = 'United States'# 合并面积数据,合并pa和areas,key=statepa = pd.merge(pa, areas, on='state', how='left')# 输出发现还有缺失值,检查一下# 可以得出缺少的是全美国的面积数据# print(pa[pa['area (sq. mi)'].isnull()]['state'].unique())# 我们不需要这个数据,删掉缺失值pa = pa.dropna()# 取year = 2010的数据,并将索引设置为state列data2010 = pa[pa['year'] == 2010]data2010.set_index('state', inplace=True)  # inplace = True 会替换掉之前的state列,只保留索引列# 计算人口密度,population / 面积areadensity = data2010['population'] / data2010['area (sq. mi)']# print(density)# print(data2010)# 一个国家的人口密度分为成年和未成年,我们将其合并# 数据中呈现的就是两个相同的state的信息,我们按照state分组后合并sum_density = density.groupby('state').sum()# print(sum_density)# 对上面的值进行排序# ascending默认=True,即升序排序sort_sum_density = sum_density.sort_values(ascending=False)# print(sort_sum_density)print('前5名:\n{}'.format(sort_sum_density.head(5)))print('后5名:\n{}'.format(sort_sum_density.tail(5)))

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

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

相关文章

C语言结合体和枚举的魅力展现

前言 ✨✨欢迎👍👍点赞☕️☕️收藏✍✍评论 个人主页:秋邱’博客 所属栏目:人工智能 (感谢您的光临,您的光临蓬荜生辉) 引言: 前面我们已经讲了结构体的声明,自引用,内存…

Servlet通常如何通过重写父类HttpServlet的doGet()、doPost()等方法来处理不同类型的HTTP请求?

Servlet在Java Web应用程序中用于处理HTTP请求。javax.servlet.http.HttpServlet是一个抽象类,它提供了处理HTTP请求的标准机制。当您创建一个Servlet并让它继承自HttpServlet时,您可以重写其中的doGet()和doPost()方法以便分别处理GET和POST类型的HTTP请求。 以下是Servlet…

离线Linux/openEuler服务器指定本地yum仓库

1、前提准备一个预装坏境比较完整的linux镜像文件,本文服务器使用的是openEuler 官网:openEuler下载 | 欧拉系统ISO镜像 | openEuler社区官网 2、上传镜像文件至服务器 如果是集群服务器,上传其中一台服务器之后,使用scp指令将镜…

王道C语言督学营OJ课后习题(课时14)

#include <stdio.h> #include <stdlib.h>typedef char BiElemType; typedef struct BiTNode{BiElemType c;//c 就是书籍上的 datastruct BiTNode *lchild;struct BiTNode *rchild; }BiTNode,*BiTree;//tag 结构体是辅助队列使用的 typedef struct tag{BiTree p;//树…

网络时间同步设备(时间同步系统)操作及应用方案

网络时间同步设备&#xff08;时间同步系统&#xff09;操作及应用方案 网络时间同步设备&#xff08;时间同步系统&#xff09;操作及应用方案 有不少自学成才的电脑专家还是有经过系统性训练的电脑专家&#xff0c;大部份的电脑专家都折腾过Windows Server系列的服务器操作系…

【探索Linux】—— 强大的命令行工具 P.31(守护进程)

阅读导航 引言一、守护进程简介1. 概念2. 特点 二、用C创建守护进程⭕代码✅主要步骤 温馨提示 引言 当谈到计算机系统中运行的特殊进程时&#xff0c;守护进程&#xff08;daemon&#xff09;无疑是一个备受关注的话题。作为在后台默默运行并提供各种服务的进程&#xff0c;守…

C++ —— C++11新增语法

目录 一&#xff0c;列表初始化 1.1 这是什么&#xff1f; 1.2 initializer_list 1.3 在容器的运用 1.4 STL中的变化 二&#xff0c;右值引用和左值引用 2.1 是什么&#xff1f; 2.2 这两个东西有啥关系&#xff1f; 2.3 有啥用&#xff1f; 三&#xff0c;*移动构…

基于DCT(离散余弦变换)的图像水印算法,Matlab实现

博主简介&#xff1a; 专注、专一于Matlab图像处理学习、交流&#xff0c;matlab图像代码代做/项目合作可以联系&#xff08;QQ:3249726188&#xff09; 个人主页&#xff1a;Matlab_ImagePro-CSDN博客 原则&#xff1a;代码均由本人编写完成&#xff0c;非中介&#xff0c;提供…

如何为 Git 配置邮箱地址

在使用 Git 进行版本控制时&#xff0c;每个提交都会关联一个提交者邮箱地址。该邮箱不仅用于标识提交者身份&#xff0c;还可能与您的 Git 托管服务&#xff08;如 GitHub、GitLab&#xff09;账户关联&#xff0c;以确保提交记录正确计入您的个人贡献。本篇博客将指导您如何为…

牛角工具箱源码 轻松打造个性化在线工具箱,附带系统搭建教程

这是一款在线工具箱程序&#xff0c;您可以通过安装扩展增强她的功能 通过插件模板的功能&#xff0c;您也可以把她当做网页导航来使用~ &#x1f38a; 环境要求 PHP > 7.2.5 MySQL > 5.7 fileinfo扩展 使用Redis缓存需安装Redis扩展 去除禁用函数proc_open、putenv、s…

C语言-写一个简单的Web服务器(四)

经过以上几次的构建&#xff0c;我们基本上已经构建出来了一个简易的Web服务器&#xff0c;接下来将使用查询从文本中查询我们的问题。 查询结果 在这里我设置了一个page全局参数用来记录是哪个页面&#xff0c;避免和登录页面进行冲突重复查询&#xff08;大家可以自行优化&am…

YOLOv9改进策略 :blcok优化 | 极简的神经网络VanillaBlock 实现涨点 |华为诺亚 VanillaNet

&#x1f4a1;&#x1f4a1;&#x1f4a1;本文改进内容&#xff1a; VanillaNet&#xff0c;是一种设计优雅的神经网络架构&#xff0c; 通过避免高深度、shortcuts和自注意力等复杂操作&#xff0c;VanillaNet 简洁明了但功能强大。 &#x1f4a1;&#x1f4a1;&#x1f4a1;引…

303.【华为OD机试】报数游戏(约瑟夫环算法解题—JavaPythonC++JS实现)

本文收录于专栏:算法之翼 本专栏所有题目均包含优质解题思路,高质量解题代码(Java&Python&C++&JS分别实现),详细代码讲解,助你深入学习,深度掌握! 文章目录 一. 题目二.解题思路三.题解代码Python题解代码JAVA题解代码C/C++题解代码JS题解代码四.代码讲解(Ja…

c语音函数大全(W开头)

c语音函数大全(W开头) There is no nutrition in the blog content. After reading it, you will not only suffer from malnutrition, but also impotence. The blog content is all parallel goods. Those who are worried about being cheated should leave quickly. 函数名…

二、CentOS基础配置(1.网络与包管理)

文章目录 二、基础配置操作1、网络管理&#xff08;配置静态地址并进行ssh远程连接&#xff09;&#xff08;1.&#xff09;静态地址配置&#xff08;2.&#xff09;IP配置注释&#xff08;3.&#xff09;配置SSH远程连接 2、包管理&#xff08;1.&#xff09;yum软件包管理器1…

Fastgpt 无法启动或启动后无法正常使用的讨论(启动失败、用户未注册等问题这里)

FastGPT 是一个基于 LLM 大语言模型的知识库问答系统&#xff0c;提供开箱即用的数据处理、模型调用等能力。同时可以通过 Flow 可视化进行工作流编排&#xff0c;从而实现复杂的问答场景&#xff01; FastGPT是非常实用并且相当厉害的个人知识库AI项目&#xff0c;项目是非常…

Python:文档注释、类型标注和注释宏# type:

目录 1、增加文档注释2、增加类型标注3、增加注释宏 看一段简单的代码 def add(x, y):return x y如下代码调用函数&#xff0c;可以正常执行 print(add(1, 2)) # 3 print(add(1, 2)) # 121、增加文档注释 def add(x, y):"""sum x and y:param x: int:param y…

DVWA-CSRF通关教程-完结

DVWA-CSRF通关教程-完结 文章目录 DVWA-CSRF通关教程-完结Low页面使用源码分析漏洞利用 Medium源码分析漏洞利用 High源码分析漏洞利用 impossible源码分析 Low 页面使用 当前页面上&#xff0c;是一个修改admin密码的页面&#xff0c;只需要输入新密码和重复新密码&#xff…

怎么学习写代码?

学习编写代码是一项既有挑战性又充满乐趣的任务&#xff0c;它可以帮助你创建各种应用程序、网站、游戏&#xff0c;甚至解决复杂问题。以下是一份详细的步骤指南&#xff0c;帮助你开始学习写代码&#xff1a; 1. 确定学习目标&#xff1a; - 明确你希望通过学习编程实现什…

git 合并当前分支到 指定仓库的指定分支

要将当前分支的更改合并到指定仓库的指定分支&#xff0c;可以按照以下步骤进行&#xff1a; 确保当前分支的更改已经提交并推送到当前仓库中。 添加目标仓库的远程地址。假设目标仓库的远程地址是 https://github.com/example/target-repo.git&#xff0c;你可以使用以下命令…