【深耕 Python】Data Science with Python 数据科学(10)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页练习题

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

本期使用Pandas库进行初步的数据处理分析,所用的csv为历年诺贝尔奖获得者信息(位于laureates.csv中,需事先下载)。使用pandas中的简单命令对庞大的文件进行匹配和搜索,得到有关理查德费曼(Richard Feynman)和基普索恩(Kip Thorne)的获奖信息,直到遇到第一个报错(ValueError)。csv文件的下载命令如下:

curl -OL https://cdn.learnenough.com/laureates.csv

Python Code Snippet 1

import pandas as pdnobel = pd.read_csv("laureates.csv")
print("Output for describe() method:")
print(nobel.describe())
print()
print("Output for head() method:")
print(nobel.head())
print()
print("Output for info() method:")
print(nobel.info())
print()
Output for describe() method:id         year       share
count   975.000000   975.000000  975.000000
mean    496.221538  1972.471795    2.014359
std     290.594353    34.058064    0.943909
min       1.000000  1901.000000    1.000000
25%     244.500000  1948.500000    1.000000
50%     488.000000  1978.000000    2.000000
75%     746.500000  2001.000000    3.000000
max    1009.000000  2021.000000    4.000000Output for head() method:id       firstname    surname        born        died  \
0   1  Wilhelm Conrad    Röntgen  1845-03-27  1923-02-10   
1   2      Hendrik A.    Lorentz  1853-07-18  1928-02-04   
2   3          Pieter     Zeeman  1865-05-25  1943-10-09   
3   4           Henri  Becquerel  1852-12-15  1908-08-25   
4   5          Pierre      Curie  1859-05-15  1906-04-19   bornCountry bornCountryCode                bornCity  \
0  Prussia (now Germany)              DE  Lennep (now Remscheid)   
1        the Netherlands              NL                  Arnhem   
2        the Netherlands              NL              Zonnemaire   
3                 France              FR                   Paris   
4                 France              FR                   Paris   diedCountry diedCountryCode   diedCity gender  year category  \
0          Germany              DE     Munich   male  1901  physics   
1  the Netherlands              NL        NaN   male  1902  physics   
2  the Netherlands              NL  Amsterdam   male  1902  physics   
3           France              FR        NaN   male  1903  physics   
4           France              FR      Paris   male  1903  physics   overallMotivation  share                                         motivation  \
0               NaN      1  "in recognition of the extraordinary services ...   
1               NaN      2  "in recognition of the extraordinary service t...   
2               NaN      2  "in recognition of the extraordinary service t...   
3               NaN      2  "in recognition of the extraordinary services ...   
4               NaN      4  "in recognition of the extraordinary services ...   name       city  \
0                                  Munich University     Munich   
1                                  Leiden University     Leiden   
2                               Amsterdam University  Amsterdam   
3                                École Polytechnique      Paris   
4  École municipale de physique et de chimie indu...      Paris   country  
0          Germany  
1  the Netherlands  
2  the Netherlands  
3           France  
4           France  Output for info() method:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 975 entries, 0 to 974
Data columns (total 20 columns):#   Column             Non-Null Count  Dtype 
---  ------             --------------  ----- 0   id                 975 non-null    int64 1   firstname          975 non-null    object2   surname            945 non-null    object3   born               974 non-null    object4   died               975 non-null    object5   bornCountry        946 non-null    object6   bornCountryCode    946 non-null    object7   bornCity           943 non-null    object8   diedCountry        640 non-null    object9   diedCountryCode    640 non-null    object10  diedCity           634 non-null    object11  gender             975 non-null    object12  year               975 non-null    int64 13  category           975 non-null    object14  overallMotivation  23 non-null     object15  share              975 non-null    int64 16  motivation         975 non-null    object17  name               717 non-null    object18  city               712 non-null    object19  country            713 non-null    object
dtypes: int64(3), object(17)
memory usage: 152.5+ KB
None

Python Code Snippet 2

print(nobel[nobel["surname"] == "Feynman"])
print(nobel[nobel["surname"] == "Feynman"].year)
print((nobel["surname"] == "Feynman")[86])
print(nobel.loc[nobel["surname"] == "Feynman", "year"])
print(nobel.loc[nobel["firstname"] == "Kip"])
print(nobel.loc[nobel["firstname"] == "Kip S."])
print(nobel.loc[nobel["firstname"] == "Kip S."].year)
print(nobel.loc[nobel["firstname"].str.contains("Kip")])
print(nobel.loc[nobel["surname"].str.contains("Feynman")])

Output (with error at the end):

# 【美】理查德费曼(1918-1988)的获奖信息,1965年,加州理工学院,位于条目86中: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
# 获奖年份:1965
86    1965
Name: year, dtype: int64
# 
True
# 仅返回年份信息
86    1965
Name: year, dtype: int64# “Kip”的搜索结果为空
Empty DataFrame
Columns: [id, firstname, surname, born, died, bornCountry, bornCountryCode, bornCity, diedCountry, diedCountryCode, diedCity, gender, year, category, overallMotivation, share, motivation, name, city, country]
Index: []# 改为Kip S.,得到基普索恩((1940-),引力波天文台)的获奖信息:id firstname surname        born        died bornCountry  \
916  943    Kip S.  Thorne  1940-06-01  0000-00-00         USA   bornCountryCode  bornCity diedCountry diedCountryCode diedCity gender  \
916              US  Logan UT         NaN             NaN      NaN   male   year category overallMotivation  share  \
916  2017  physics               NaN      4   motivation  \
916  "for decisive contributions to the LIGO detect...   name city country  
916  LIGO/VIRGO Collaboration  NaN     NaN# 基普索恩Kip S. Thorne获奖年份:
916    2017
Name: year, dtype: int64# 字符串搜寻,寻找姓氏中带有Kip的条目,返回916条:id firstname surname        born        died bornCountry  \
916  943    Kip S.  Thorne  1940-06-01  0000-00-00         USA   bornCountryCode  bornCity diedCountry diedCountryCode diedCity gender  \
916              US  Logan UT         NaN             NaN      NaN   male   year category overallMotivation  share  \
916  2017  physics               NaN      4   motivation  \
916  "for decisive contributions to the LIGO detect...   name city country  
916  LIGO/VIRGO Collaboration  NaN     NaN  # 报错:由于存在NaN(Not a Number)条目,返回ValueError:
[0;31m---------------------------------------------------------------------------[0m
[0;31mValueError[0m                                Traceback (most recent call last)
[0;32m<ipython-input-7-a3d47195d041>[0m in [0;36m<module>[0;34m[0m
[1;32m      7[0m [0mprint[0m[0;34m([0m[0mnobel[0m[0;34m.[0m[0mloc[0m[0;34m[[0m[0mnobel[0m[0;34m[[0m[0;34m"firstname"[0m[0;34m][0m [0;34m==[0m [0;34m"Kip S."[0m[0;34m][0m[0;34m.[0m[0myear[0m[0;34m)[0m[0;34m[0m[0;34m[0m[0m
[1;32m      8[0m [0mprint[0m[0;34m([0m[0mnobel[0m[0;34m.[0m[0mloc[0m[0;34m[[0m[0mnobel[0m[0;34m[[0m[0;34m"firstname"[0m[0;34m][0m[0;34m.[0m[0mstr[0m[0;34m.[0m[0mcontains[0m[0;34m([0m[0;34m"Kip"[0m[0;34m)[0m[0;34m][0m[0;34m)[0m[0;34m[0m[0;34m[0m[0m
[0;32m----> 9[0;31m [0mprint[0m[0;34m([0m[0mnobel[0m[0;34m.[0m[0mloc[0m[0;34m[[0m[0mnobel[0m[0;34m[[0m[0;34m"surname"[0m[0;34m][0m[0;34m.[0m[0mstr[0m[0;34m.[0m[0mcontains[0m[0;34m([0m[0;34m"Feynman"[0m[0;34m)[0m[0;34m][0m[0;34m)[0m[0;34m[0m[0;34m[0m[0m
[0m
[0;32m~/PycharmProjects/data_science/.venv/lib/python3.6/site-packages/pandas/core/indexing.py[0m in [0;36m__getitem__[0;34m(self, key)[0m
[1;32m    877[0m [0;34m[0m[0m
[1;32m    878[0m             [0mmaybe_callable[0m [0;34m=[0m [0mcom[0m[0;34m.[0m[0mapply_if_callable[0m[0;34m([0m[0mkey[0m[0;34m,[0m [0mself[0m[0;34m.[0m[0mobj[0m[0;34m)[0m[0;34m[0m[0;34m[0m[0m
[0;32m--> 879[0;31m             [0;32mreturn[0m [0mself[0m[0;34m.[0m[0m_getitem_axis[0m[0;34m([0m[0mmaybe_callable[0m[0;34m,[0m [0maxis[0m[0;34m=[0m[0maxis[0m[0;34m)[0m[0;34m[0m[0;34m[0m[0m
[0m[1;32m    880[0m [0;34m[0m[0m
[1;32m    881[0m     [0;32mdef[0m [0m_is_scalar_access[0m[0;34m([0m[0mself[0m[0;34m,[0m [0mkey[0m[0;34m:[0m [0mTuple[0m[0;34m)[0m[0;34m:[0m[0;34m[0m[0;34m[0m[0m[0;32m~/PycharmProjects/data_science/.venv/lib/python3.6/site-packages/pandas/core/indexing.py[0m in [0;36m_getitem_axis[0;34m(self, key, axis)[0m
[1;32m   1087[0m             [0mself[0m[0;34m.[0m[0m_validate_key[0m[0;34m([0m[0mkey[0m[0;34m,[0m [0maxis[0m[0;34m)[0m[0;34m[0m[0;34m[0m[0m
[1;32m   1088[0m             [0;32mreturn[0m [0mself[0m[0;34m.[0m[0m_get_slice_axis[0m[0;34m([0m[0mkey[0m[0;34m,[0m [0maxis[0m[0;34m=[0m[0maxis[0m[0;34m)[0m[0;34m[0m[0;34m[0m[0m
[0;32m-> 1089[0;31m         [0;32melif[0m [0mcom[0m[0;34m.[0m[0mis_bool_indexer[0m[0;34m([0m[0mkey[0m[0;34m)[0m[0;34m:[0m[0;34m[0m[0;34m[0m[0m
[0m[1;32m   1090[0m             [0;32mreturn[0m [0mself[0m[0;34m.[0m[0m_getbool_axis[0m[0;34m([0m[0mkey[0m[0;34m,[0m [0maxis[0m[0;34m=[0m[0maxis[0m[0;34m)[0m[0;34m[0m[0;34m[0m[0m
[1;32m   1091[0m         [0;32melif[0m [0mis_list_like_indexer[0m[0;34m([0m[0mkey[0m[0;34m)[0m[0;34m:[0m[0;34m[0m[0;34m[0m[0m[0;32m~/PycharmProjects/data_science/.venv/lib/python3.6/site-packages/pandas/core/common.py[0m in [0;36mis_bool_indexer[0;34m(key)[0m
[1;32m    132[0m                 [0mna_msg[0m [0;34m=[0m [0;34m"Cannot mask with non-boolean array containing NA / NaN values"[0m[0;34m[0m[0;34m[0m[0m
[1;32m    133[0m                 [0;32mif[0m [0misna[0m[0;34m([0m[0mkey[0m[0;34m)[0m[0;34m.[0m[0many[0m[0;34m([0m[0;34m)[0m[0;34m:[0m[0;34m[0m[0;34m[0m[0m
[0;32m--> 134[0;31m                     [0;32mraise[0m [0mValueError[0m[0;34m([0m[0mna_msg[0m[0;34m)[0m[0;34m[0m[0;34m[0m[0m
[0m[1;32m    135[0m                 [0;32mreturn[0m [0;32mFalse[0m[0;34m[0m[0;34m[0m[0m
[1;32m    136[0m             [0;32mreturn[0m [0;32mTrue[0m[0;34m[0m[0;34m[0m[0m[0;31mValueError[0m: Cannot mask with non-boolean array containing NA / NaN values

参考文献 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.mzph.cn/web/2458.shtml

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

相关文章

使用 IPAM 解决方案简化分布式网络管理

随着组织在数字领域的全球扩张&#xff0c;分布式网络是不可避免的&#xff0c;这意味着&#xff0c;随着 IT 基础设施的发展&#xff0c;组织需要适应&#xff0c;这包括在不断增长的系统需求、应用程序堆栈、各种协议和安全防御中监控、现代化和简化流程和资源。在有效管理现…

常用的正则表达式组成

正则表达式是一种强大的文本处理工具&#xff0c;用于匹配、搜索、替换、分割等多种操作。以下是正则表达式的基本组成和语法&#xff0c;以及如何使用它们来构建复杂的模式。 正则表达式语法 1. 基本字符匹配 - 普通字符: 大多数字符&#xff0c;如a-z、A-Z、0-9&#xff0c…

盲人过马路安全:科技力量赋予“隐形守护者”

作为一名资深记者&#xff0c;我始终关注着社会各群体的生活现状&#xff0c;尤其是那些面临特殊挑战的人群。今天&#xff0c;我想聚焦一个看似平常却对盲人构成重大困扰的日常场景——过马路&#xff0c;以及一款名为蝙蝠避障的辅助应用如何成为他们的盲人过马路安全的守护者…

自制Apache-Doris 2.0.4镜像Docker部署一Fe和一Be集群及遇到的问题解决

自制Apache-Doris 2.0.4镜像Docker部署一Fe和一Be集群及遇到的问题解决 文章目录 1.前言2.doris是什么&#xff1f;2.1简介2.2介绍2.3使用场景2.4架构 3.官网4.构建部署4.1 构建环境4.2 doris2.0.4的fe和be镜像构建4.2.1 fe2.0.4镜像构建脚本4.2.2 be2.0.4镜像构建4.2.3 启动脚…

OSINT技术情报精选·2024年4月第3周

OSINT技术情报精选2024年4月第3周 2024.4.22版权声明&#xff1a;本文为博主chszs的原创文章&#xff0c;未经博主允许不得转载。 1、斯坦福大学&#xff1a;《2024年人工智能指数报告》 最近&#xff0c;由李飞飞联合领导的斯坦福大学以人为本人工智能研究所&#xff08;St…

FebHost:科技企业如何规划并注册.AI域名?

为确保企业使用.AI域名的方式准确反映其对人工智能技术的关注&#xff0c;企业应考虑以下步骤&#xff1a; 了解法律和合规要求&#xff1a; 第一步是了解与 .AI 域名相关的独特法律和合规要求。由于.AI域名源于安圭拉&#xff0c;企业必须遵守安圭拉的限制和法律规定。这包括…

K8S Centos7 安装 K8S 1.26单机版

文章目录 1.机器规划1.设置hostname2.编辑/etc/hosts3.安装ntpdate并同步时间4.关闭防火墙5.关闭selinux 2.安装 Docker1.安装Docker2.安装容器运行时cri-dockerd 3.安装K8S1.禁用swap2.安装Kubernetes相关软件3.所有master节点拉取k8s镜像4.初始化Kubernetes Master节点5.安装…

MySQL-用户管理

MySQL 用户分为 普通用户 和 root用户。root用户即超级管理员&#xff0c;拥有所有权限&#xff0c;包含创建&#xff0c;删除和修改用户等相关权限&#xff1b;普通用户只拥有被root用户授予的各种权限MySQL的安全性需要通过账户管理来实现 1、登录MySQL服务器 命令如下&…

Nginx七层负载均衡

1、七层负载均衡介绍 Nginx七层负载均衡是在应用层&#xff08;HTTP/HTTPS&#xff09;上进行的&#xff0c;可以根据HTTP请求的具体内容&#xff0c;如URL、Cookie、Header等&#xff0c;来决定将请求转发到哪个后端服务器。这种方式不仅能够均衡服务器的计算负载&#xff0c…

基于微信小程序的土地租赁的设计与实现

基于微信小程序的土地租赁的设计与实现 Design and Implementation of Land Leasing Based on WeChat Mini Program 完整下载链接:基于微信小程序的土地租赁的设计与实现 文章目录 基于微信小程序的土地租赁的设计与实现摘要第一章 绪论1.1 研究背景1.2 研究目的1.3 研究内容…

C语言 字符类型

下面 我们来说字符类型 我们来看这个 保险单 金额 和 总额 都可以用数字类型 而性别则需要字符型 字符数据的存储 – ASCI码 字符类型 char 就是专为存储字符(如字母&#xff0c;标点和数字)而设计的类型。 使用单引号包含单个字符或转义字符去表示一个 char 类型的常量。 …

Lua调用函数的方式汇总

在Lua脚本语言中&#xff0c;调用函数是一种基本的操作&#xff0c;它允许代码执行在函数定义中封装的操作。Lua 提供了几种灵活的方式来调用函数&#xff0c;以适应不同的场景和需求。以下是Lua中调用函数的几种常见方式&#xff1a; 1. 基本函数调用 最简单的调用方式是使用…

李沐56_门控循环单元——自学笔记

关注每一个序列 1.不是每个观察值都是同等重要 2.想只记住的观察需要&#xff1a;能关注的机制&#xff08;更新门 update gate&#xff09;、能遗忘的机制&#xff08;重置门 reset gate&#xff09; !pip install --upgrade d2l0.17.5 #d2l需要更新import torch from tor…

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单人脸检测/识别实战案例 之五 简单进行车牌检测和识别

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单人脸检测/识别实战案例 之五 简单进行车牌检测和识别 目录 Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单人脸检测/识别实战案例 之五 简单进行车牌检测和识别 一、简单介绍 二、简单进行车牌检测和识别实现原理 …

深入理解Java消息中间件-消息的可靠性

基石&#xff1a;在分布式系统中实现消息的可靠性及其原理 在构建现代的分布式系统时&#xff0c;能否可靠地传递消息是衡量系统成功与否的一个关键。本文章旨在讨论如何实现消息的可靠性及其背后的原理&#xff0c;帮助Java技术架构师和开发者构筑一个稳固的系统。 消息可靠…

关于上传自己本地项目到GitHub的相关命令

https://www.cnblogs.com/nature161/p/15014265.html 根据教程里的来&#xff0c;主要注意这个命令&#xff1a; $ git pull --rebase origin master # 对GitHub的仓库包含了readme.md文件的情况先要执行这个命令再pull 如果你的GitHub是main分支想上传到main分支&#xff0…

Opencv_10_自带颜色表操作

void color_style(Mat& image); Opencv_10_自带颜色表操作&#xff1a; void ColorInvert::color_style(Mat& image) { int colormap[] { COLORMAP_AUTUMN, COLORMAP_BONE , COLORMAP_JET , COLORMAP_WINTER, COLORMAP_RAINBOW , COLOR…

编译器的学习

常用的编译器&#xff1a; GCCVisual CClang&#xff08;LLVM&#xff09;&#xff1a; Clang 可以被看作是建立在 LLVM 之上的一个项目, 实际上LLVM是clang的后端&#xff0c;clang作为前端前端生成LLVM IR&#xff0c;https://zhuanlan.zhihu.com/p/656699711MSVC &#xff…

Docker常用命令(镜像、容器、网络)

一、镜像 1.1 存出镜像 将镜像保存成为本地文件 格式&#xff1a;docker save -o 存储文件名 存储的镜像docker save -o nginx nginx:latest 1.2 载入镜像 将镜像文件导入到镜像库中 格式&#xff1a;docker load < 存出的文件或docker load -i 存出的文件…

程序猿成长之路之数据挖掘篇——朴素贝叶斯

朴素贝叶斯是数据挖掘分类的基础&#xff0c;本篇文章将介绍一下朴素贝叶斯算法 情景再现 以挑选西瓜为例&#xff0c;西瓜的色泽、瓜蒂、敲响声音、触感、脐部等特征都会影响到西瓜的好坏。那么我们怎么样可以挑选出一个好的西瓜呢&#xff1f; 分析过程 既然挑选西瓜有多个…