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

写在前面

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

【深耕 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页练习题

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

Jupyter 代码片段 1:定义简单的Series

python 复制代码
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

print(pd.Series([1, 2, 3, "foo", np.nan, "bar"]))
print()
print(pd.Series([1, 2, 3, "foo", np.nan, "bar"]).dropna())

运行结果:

Jupyter 代码片段 2:Series的索引、自定义索引

Series的索引支持自定义,可以通过索引访问各个成员、进行切片操作等。

python 复制代码
from numpy.random import default_rng

print(pd.Series([1, 2, 3, "foo", np.nan, "bar"]).index)
rng = default_rng()
print()
s = pd.Series(rng.standard_normal(5), index=["a", "b", "c", "d", "e"])
print(s)
print()
print(s[0])
print()
print(s[1:3])
print()
print(s["c"])
print()
print(s.keys())
print()
print(s.index)

运行结果:

Jupyter 代码片段 3:简单直方图的绘制

使用1000个标准正态分布的样本点,绘制直方图:

python 复制代码
s = pd.Series(rng.standard_normal(1000))
s.hist()
plt.show()

运行结果:

Jupyter 代码片段 4:DataFrame的构造、访问和映射

python 复制代码
from math import tau
from numpy.random import default_rng

rng = default_rng()
df = pd.DataFrame(
    {
        "Number": 1.0,
        "String": "foo",
        "Angles": np.linspace(0, tau, 5),
        "Random": pd.Series(rng.standard_normal(5)),
        "Timestamp": pd.Timestamp("20221020"),
        "Size": pd.Categorical(["tiny", "small", "mid", "big", "huge"])
    }
)

print(df)
print()
print(df["Size"])
print()
print(df["Random"].mean())
print()
print(df.describe())
print()
sizes = {"tiny": 4, "small": 8, "mid": 12, "big": 16, "huge": 24}
df["Size"].map(sizes)

运行结果:

参考文献 Reference

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

相关推荐
Learn-Python4 小时前
MongoDB-only方法
python·sql
iuu_star4 小时前
C语言数据结构-顺序查找、折半查找
c语言·数据结构·算法
漫随流水4 小时前
leetcode算法(515.在每个树行中找最大值)
数据结构·算法·leetcode·二叉树
小途软件5 小时前
用于机器人电池电量预测的Sarsa强化学习混合集成方法
java·人工智能·pytorch·python·深度学习·语言模型
扫地的小何尚5 小时前
NVIDIA RTX PC开源AI工具升级:加速LLM和扩散模型的性能革命
人工智能·python·算法·开源·nvidia·1024程序员节
wanglei2007086 小时前
生产者消费者
开发语言·python
清水白石0086 小时前
《从零到进阶:Pydantic v1 与 v2 的核心差异与零成本校验实现原理》
数据库·python
昵称已被吞噬~‘(*@﹏@*)’~6 小时前
【RL+空战】学习记录03:基于JSBSim构造简易空空导弹模型,并结合python接口调用测试
开发语言·人工智能·python·学习·深度强化学习·jsbsim·空战
2501_941877986 小时前
从配置热更新到运行时自适应的互联网工程语法演进与多语言实践随笔分享
开发语言·前端·python
酩酊仙人6 小时前
fastmcp构建mcp server和client
python·ai·mcp