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

2024-04-25 06:12

本文主要是介绍【深耕 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    1Klug           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.

这篇关于【深耕 Python】Data Science with Python 数据科学(11)pandas 数据处理(二)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/933884

相关文章

python生成随机唯一id的几种实现方法

《python生成随机唯一id的几种实现方法》在Python中生成随机唯一ID有多种方法,根据不同的需求场景可以选择最适合的方案,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习... 目录方法 1:使用 UUID 模块(推荐)方法 2:使用 Secrets 模块(安全敏感场景)方法

MyBatis-Plus通用中等、大量数据分批查询和处理方法

《MyBatis-Plus通用中等、大量数据分批查询和处理方法》文章介绍MyBatis-Plus分页查询处理,通过函数式接口与Lambda表达式实现通用逻辑,方法抽象但功能强大,建议扩展分批处理及流式... 目录函数式接口获取分页数据接口数据处理接口通用逻辑工具类使用方法简单查询自定义查询方法总结函数式接口

使用Python删除Excel中的行列和单元格示例详解

《使用Python删除Excel中的行列和单元格示例详解》在处理Excel数据时,删除不需要的行、列或单元格是一项常见且必要的操作,本文将使用Python脚本实现对Excel表格的高效自动化处理,感兴... 目录开发环境准备使用 python 删除 Excphpel 表格中的行删除特定行删除空白行删除含指定

Python通用唯一标识符模块uuid使用案例详解

《Python通用唯一标识符模块uuid使用案例详解》Pythonuuid模块用于生成128位全局唯一标识符,支持UUID1-5版本,适用于分布式系统、数据库主键等场景,需注意隐私、碰撞概率及存储优... 目录简介核心功能1. UUID版本2. UUID属性3. 命名空间使用场景1. 生成唯一标识符2. 数

Python办公自动化实战之打造智能邮件发送工具

《Python办公自动化实战之打造智能邮件发送工具》在数字化办公场景中,邮件自动化是提升工作效率的关键技能,本文将演示如何使用Python的smtplib和email库构建一个支持图文混排,多附件,多... 目录前言一、基础配置:搭建邮件发送框架1.1 邮箱服务准备1.2 核心库导入1.3 基础发送函数二、

Python包管理工具pip的升级指南

《Python包管理工具pip的升级指南》本文全面探讨Python包管理工具pip的升级策略,从基础升级方法到高级技巧,涵盖不同操作系统环境下的最佳实践,我们将深入分析pip的工作原理,介绍多种升级方... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

SQL中如何添加数据(常见方法及示例)

《SQL中如何添加数据(常见方法及示例)》SQL全称为StructuredQueryLanguage,是一种用于管理关系数据库的标准编程语言,下面给大家介绍SQL中如何添加数据,感兴趣的朋友一起看看吧... 目录在mysql中,有多种方法可以添加数据。以下是一些常见的方法及其示例。1. 使用INSERT I

基于Python实现一个图片拆分工具

《基于Python实现一个图片拆分工具》这篇文章主要为大家详细介绍了如何基于Python实现一个图片拆分工具,可以根据需要的行数和列数进行拆分,感兴趣的小伙伴可以跟随小编一起学习一下... 简单介绍先自己选择输入的图片,默认是输出到项目文件夹中,可以自己选择其他的文件夹,选择需要拆分的行数和列数,可以通过

Python中反转字符串的常见方法小结

《Python中反转字符串的常见方法小结》在Python中,字符串对象没有内置的反转方法,然而,在实际开发中,我们经常会遇到需要反转字符串的场景,比如处理回文字符串、文本加密等,因此,掌握如何在Pyt... 目录python中反转字符串的方法技术背景实现步骤1. 使用切片2. 使用 reversed() 函

Python中将嵌套列表扁平化的多种实现方法

《Python中将嵌套列表扁平化的多种实现方法》在Python编程中,我们常常会遇到需要将嵌套列表(即列表中包含列表)转换为一个一维的扁平列表的需求,本文将给大家介绍了多种实现这一目标的方法,需要的朋... 目录python中将嵌套列表扁平化的方法技术背景实现步骤1. 使用嵌套列表推导式2. 使用itert