【深耕 Python】Data Science with Python 数据科学(11)pandas 数据处理(二)

写在前面

关于数据科学环境的建立,可以参考我的博客:

【深耕 Python】Data Science with Python 数据科学(1)环境搭建

往期数据科学博文:

【深耕 Python】Data Science with Python 数据科学(2)jupyter-lab和numpy数组

【深耕 Python】Data Science with Python 数据科学(3)Numpy 常量、函数和线性空间

【深耕 Python】Data Science with Python 数据科学(4)(书337页)练习题及解答

【深耕 Python】Data Science with Python 数据科学(5)Matplotlib可视化(1)

【深耕 Python】Data Science with Python 数据科学(6)Matplotlib可视化(2)

【深耕 Python】Data Science with Python 数据科学(7)书352页练习题

【深耕 Python】Data Science with Python 数据科学(8)pandas数据结构:Series和DataFrame

【深耕 Python】Data Science with Python 数据科学(9)书361页练习题

【深耕 Python】Data Science with Python 数据科学(10)pandas 数据处理(一)

代码说明: 由于实机运行的原因,可能省略了某些导入(import)语句。

本期,继续对诺奖获得者(laureates.csv)进行分析。

Python Code Snippet 1

1957年,Chen Ning Yang和Tsung-Dao Lee的获奖信息。

print(nobel.loc[nobel["surname"].str.contains("Yang", na=False)])
print(nobel.loc[nobel["surname"].str.contains("Lee", na=False)])
# 杨振宁
    id  firstname surname        born        died bornCountry bornCountryCode  \
68  68  Chen Ning    Yang  1922-09-22  0000-00-00       China              CN   

        bornCity diedCountry diedCountryCode diedCity gender  year category  \
68  Hofei Anhwei         NaN             NaN      NaN   male  1957  physics   

   overallMotivation  share  \
68               NaN      2   

                                           motivation  \
68  "for their penetrating investigation of the so...   

                            name          city country  
68  Institute for Advanced Study  Princeton NJ     USA  
# 李政道
      id  firstname surname        born        died bornCountry  \
69    69  Tsung-Dao     Lee  1926-11-24  0000-00-00       China   
148  149   David M.     Lee  1931-01-20  0000-00-00         USA   
263  265    Yuan T.     Lee  1936-11-19  0000-00-00      Taiwan   

    bornCountryCode  bornCity diedCountry diedCountryCode diedCity gender  \
69               CN  Shanghai         NaN             NaN      NaN   male   
148              US    Rye NY         NaN             NaN      NaN   male   
263              TW   Hsinchu         NaN             NaN      NaN   male   

     year   category overallMotivation  share  \
69   1957    physics               NaN      2   
148  1996    physics               NaN      3   
263  1986  chemistry               NaN      3   

                                            motivation  \
69   "for their penetrating investigation of the so...   
148  "for their discovery of superfluidity in heliu...   
263  "for their contributions concerning the dynami...   

                         name         city country  
69        Columbia University  New York NY     USA  
148        Cornell University    Ithaca NY     USA  
263  University of California  Berkeley CA     USA  

Python Code Snippet 2

理查德·费曼(Richard Feynman)和居里夫妇(Marie Curie, Pierre Curie)的获奖信息:

print(nobel.loc[nobel["surname"].str.contains("Feynman", na=False)])
print(len(nobel.loc[nobel["surname"].str.contains("Feynman", na=False)]))
curies = nobel.loc[nobel["surname"].str.contains("Curie", na=False)]
print(curies)
print(curies[["firstname", "surname"]])
# 理查德费曼获奖信息
    id   firstname  surname        born        died bornCountry  \
86  86  Richard P.  Feynman  1918-05-11  1988-02-15         USA   

   bornCountryCode     bornCity diedCountry diedCountryCode        diedCity  \
86              US  New York NY         USA              US  Los Angeles CA   

   gender  year category overallMotivation  share  \
86   male  1965  physics               NaN      3   

                                           motivation  \
86  "for their fundamental work in quantum electro...   

                                            name         city country  
86  California Institute of Technology (Caltech)  Pasadena CA     USA

# 仅有1个姓氏为费曼的获奖者
1

# 居里夫妇
      id firstname       surname        born        died  \
4      5    Pierre         Curie  1859-05-15  1906-04-19   
5      6     Marie         Curie  1867-11-07  1934-07-04   
6      6     Marie         Curie  1867-11-07  1934-07-04   
191  194     Irène  Joliot-Curie  1897-09-12  1956-03-17   

                     bornCountry bornCountryCode bornCity diedCountry  \
4                         France              FR    Paris      France   
5    Russian Empire (now Poland)              PL   Warsaw      France   
6    Russian Empire (now Poland)              PL   Warsaw      France   
191                       France              FR    Paris      France   

    diedCountryCode    diedCity  gender  year   category overallMotivation  \
4                FR       Paris    male  1903    physics               NaN   
5                FR  Sallanches  female  1903    physics               NaN   
6                FR  Sallanches  female  1911  chemistry               NaN   
191              FR       Paris  female  1935  chemistry               NaN   

     share                                         motivation  \
4        4  "in recognition of the extraordinary services ...   
5        4  "in recognition of the extraordinary services ...   
6        1  "in recognition of her services to the advance...   
191      2  "in recognition of their synthesis of new radi...   

                                                  name   city country  
4    École municipale de physique et de chimie indu...  Paris  France  
5                                                  NaN    NaN     NaN  
6                                  Sorbonne University  Paris  France  
191                                 Institut du Radium  Paris  France

# 仅显示姓氏和名字
    firstname       surname
4      Pierre         Curie
5       Marie         Curie
6       Marie         Curie
191     Irène  Joliot-Curie

Python Code Snippet 3

学者的获奖次数统计。

print(nobel.groupby(["firstname", "surname"]).size())
print(nobel.groupby(["firstname", "surname"]).size().sort_values())
laureates = nobel.groupby(["id", "firstname", "surname"])
sizes = laureates.size()
print(sizes[sizes > 1])
# 第三栏中的数字为此人的获奖次数
firstname   surname    
A. Michael  Spence         1
Aage N.     Bohr           1
Aaron       Ciechanover    1
            Klug           1
Abdulrazak  Gurnah         1
                          ..
Youyou      Tu             1
Yuan T.     Lee            1
Yves        Chauvin        1
Zhores      Alferov        1
Élie        Ducommun       1
Length: 941, dtype: int64  # 共941位获奖者,数据类型为int64

# 将获奖次数升序排序后输出
firstname     surname 
A. Michael    Spence      1
Nicolay G.    Basov       1
Niels         Bohr        1
Niels K.      Jerne       1
Niels Ryberg  Finsen      1
                         ..
Élie          Ducommun    1
Linus         Pauling     2
John          Bardeen     2
Frederick     Sanger      2
Marie         Curie       2
Length: 941, dtype: int64

# 仅输出获奖次数大于1的学者(该数据截止至2021年,2022年新产生了一位双料得主K. Barry Sharpless)
id   firstname  surname
6    Marie      Curie      2  # 物理学奖和化学奖
66   John       Bardeen    2  # 物理学奖*2
217  Linus      Pauling    2  # 化学奖和和平奖
222  Frederick  Sanger     2  # 化学奖*2
dtype: int64

参考文献 Reference

《Learn Enough Python to be Dangerous——Software Development, Flask Web Apps, and Beginning Data Science with Python》, Michael Hartl, Boston, Pearson, 2023.

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

初始Maven

1.背景 问题引入:为什么要使用 Maven? 1.1 添加第三方 jar 包 在 JavaEE 开发领域,有大量的第三方框架和工具可以供我们使用。使用这些 jar 包最简单的方法就是复制粘贴到 WEB-INF 目录中的 lib 目录下。但是会导致每次创建一个新工程就需要将…

【Linux】信号的产生

目录 一. 信号的概念signal() 函数 二. 信号的产生1. 键盘发送2. 系统调用kill()raise()abort() 3. 软件条件alarm() 4. 硬件异常除零错误:野指针: 三. 核心转储 一. 信号的概念 信号是消息的载体, 标志着不同的行为; 是进程间发送异步信息的一种方式, 属于软中断. 信号随时都…

医药流通企业如何安全访问医药ERP?无需公网IP和改变现有IT架构

随着目前医药流通行业竞争的加剧,市场供应日趋饱和,传统的粗放式管理缺陷逐渐暴露,导致从事医药行业企业的利润不同程度的下滑,想要满足医药行业客户的个性化需求,为适应企业未来发展,医药流通行业越来越多…

Docker 安装 Mongo

创建宿主机目录 在你的宿主机上创建必要的目录来存储 MongoDB 的数据和配置文件。这样做可以保证即使容器被删除,数据也能得到保留。 mkdir -p /develop/mongo/data mkdir -p /develop/mongo/config创建 MongoDB 配置文件 创建一个名为 mongod.conf 的 MongoDB 配…

C语言中整型与浮点型在内存中的存储

今天让我们来看看整型的数据和浮点型的数据在内存中是怎么存储的呢 整型数据在内存中的存储 整型数据在内存中存储的是二进制的补码 正数的话也没什么可说的,原码反码补码都相同 我们来看看负数: 以-5为例 原码:10000000 00000000 00000000 0…

【数据库】Redis

文章目录 [toc]Redis终端操作进入Redis终端Redis服务测试切换仓库 String命令存储字符串普通存储设置存储过期时间批量存储 查询字符串查询单条批量查询 Key命令查询key查询所有根据key首字母查询判断key是否存在查询指定的key对应的value的类型 删除键值对 Hash命令存储hash查…

【HTML】页面引用Vue3和Element-Plus

在现代前端开发中,Vue 3 和 Element Plus 是非常受欢迎的技术。Vue 3 是一个用于构建用户界面的渐进式 JavaScript 框架,而 Element Plus 是一个基于 Vue 3 的组件库,提供了丰富的 UI 组件,帮助开发者快速构建高质量的前端应用。 …

frp 实现 http / tcp 内网穿透(穿透 wordpress )

frp 实现 http / tcp 内网穿透(穿透 wordpress ) 1. 背景简介与软件安装2. 服务端配置2.1 配置文件2.2 wordpress 配置文件2.3 frps 自启动 3.客户端配置3.1 配置文件3.2 frpc 自启动 同步发布在个人笔记frp 实现 http / tcp 内网穿透(穿透 w…

多目标粒子群算法及其MATLAB实现

多目标粒子群优化(Multi-Objective Particle Swarm Optimization, MOPSO)算法是一种基于种群的优化算法,它结合了粒子群优化(Particle Swarm Optimization, PSO)和多目标优化的思想。多目标粒子群(MOPSO&am…

DevOps(八)Jenkins的Maven和Git插件

一、Maven简介 Maven是一个构建生命周期管理和理解工具,用于Java项目。它提供了标准化的构建流程,并简化了从项目编译到文档生成等各种构建方面的管理。 Maven是由Apache软件基金会开发和维护的一个流行的项目管理工具。它的设计目的是简化Java项目的构…

PE结构(二)PE头字段说明

PE头字段 DOS头 PE标记 标准PE头 可选PE头 我们今天分析一下PE头字段中所有重要成员的含义 DOS头 DOS头中我们需要去分析的是如下两个成员: 1.WORD e_magic:MZ标记,用于判断是否为可执行文件,即如果显示4D 5A,…

[2021年最新]国产时序性数据TDenige入门

一、TDenige简介 TDengine:是涛思数据面对高速增长的物联网大数据市场和技术挑战推出的创新性的大数据处理产品,它不依赖任何第三方软件,也不是优化或包装了一个开源的数据库或流式计算产品,而是在吸取众多传统关系型数据库、NoS…

图搜索的经典启发式算法A星(A*、A Star)算法详解

文章目录 1. 引言2. 广度优先搜索3. Dijkstra 算法4. 启发式优先搜索(Heuristic)4.1 贪心最佳优先搜索4.2 A*搜索 1. 引言 在许多场景中,我们常会遇到一类问题,即“找到一个位置到另一个位置的距离最短(用时最少&…

ELK 日志分析系统(二)

一、ELK Kibana 部署 1.1 安装Kibana软件包 #上传软件包 kibana-5.5.1-x86_64.rpm 到/opt目录 cd /opt rpm -ivh kibana-5.5.1-x86_64.rpm 1.2 设置 Kibana 的主配置文件 vim /etc/kibana/kibana.yml --2--取消注释,Kiabana 服务的默认监听端口为5601 server.po…

ubuntu 24.04 beta server NAT模式上网设置

在Ubuntu 24.04 Beta上设置网络通常涉及使用命令行工具。以下是设置静态IP地址和动态IP地址的步骤: 动态IP设置: 查找你的网络接口名称: ip a ens37是我NAT模型的一张网卡,此时是没有ip的。 下面介绍如何NAT模式下添加DHCP动态…

Maven多模块快速升级超好用Idea插件-MPVP

功能:多模块maven项目快速升级指定版本插件,并提供预览和相关升级模块日志能力。 可快速进行版本升级,进行部署到Maven仓库。 安装: 可在idea插件中心进行安装 / 下载资源拖动安装 MPVP(Maven) - IntelliJ IDEs Plugin | Marke…

node.js 解析post请求 方法一

前提:依旧以前面发的node.js服务器动态资源处理代码 具体见 http://t.csdnimg.cn/TSNW9为模板,在这基础上进行修改。与动态资源处理代码不同的是,这次的用户信息我们借用表单来实现。post请求解析来获取和展示用户表单填写信息 1》代码难点&…

快速新建springboot项目

一、初始化 1.打开IDEA,在Spring initializer这里按照下图项目进行配置。注意:如果jdk是1.8建议将Server URL这里替换为图中的阿里云服务器,否则容易找不到对应的java8,然后点击next 2.在这里提前配置一些需要使用的依赖&#xf…

Linux上部署Jupyter notebook

安装jupyter notebook pip install notebook #或者 conda install notebook配置 jupyter notebook --generate-config## The IP address the notebook server will listen on. # Default: localhost # 设置可以访问的ip, 默认是localhost, 将其改为 * c.NotebookApp.ip *#…

CMakeLists.txt中如何添加编译选项?

1. 引子 编译器有多种可供选择,如g、c、clang等,如下以c作为示例。 2. 使用CMAKE_CXX_FLAGS添加编译选项 在Makefile中可能用类似如下的指令来添加编译选项: /usr/bin/c -Wall -Wextra -Wno-sign-compare -Wno-unused-variable -Wno-unuse…
最新文章