【深耕 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.

相关推荐
honder试试9 小时前
焊接自动化测试平台图像处理分析-模型训练推理
开发语言·python
心本无晴.10 小时前
Python进程,线程
python·进程
Ripple1231210 小时前
数据结构:顺序表与链表
数据结构·链表
一个响当当的名号11 小时前
B树,B+树,B*树(无代码)
数据结构·b树
java1234_小锋12 小时前
Scikit-learn Python机器学习 - 特征降维 压缩数据 - 特征提取 - 主成分分析 (PCA)
python·机器学习·scikit-learn
java1234_小锋12 小时前
Scikit-learn Python机器学习 - 特征降维 压缩数据 - 特征提取 - 线性判别分析 (LDA)
python·机器学习·scikit-learn
古译汉书13 小时前
嵌入式铁头山羊stm32-ADC实现定时器触发的注入序列的单通道转换-Day26
开发语言·数据结构·stm32·单片机·嵌入式硬件·算法
野犬寒鸦13 小时前
力扣hot100:相交链表与反转链表详细思路讲解(160,206)
java·数据结构·后端·算法·leetcode
思辨共悟13 小时前
Python的价值:突出在数据分析与挖掘
python·数据分析
GalaxyPokemon14 小时前
LeetCode - 1089. 复写零
数据结构