博客
关于我
pandas PIVOT_TABLE保持索引
阅读量:793 次
发布时间:2023-02-26

本文共 1992 字,大约阅读时间需要 6 分钟。

在Python的Pandas库中,pivot_table函数是数据分析中的一个强大工具,它可以帮助我们快速创建透视表(pivot table)。透视表是一种常见的数据汇总方式,适用于展示数据的结构分布情况。以下将详细介绍如何使用Pandas的pivot_table函数,以及其应用场景。

1. 导入Pandas库并创建DataFrame

首先,我们需要导入Pandas库并创建一个DataFrame对象。DataFrame是Pandas中最常用的数据结构,类似于Excel表格,可以存储结构化数据。

import pandas as pd
# 创建一个DataFrame
data = {
'Name': ['John', 'Anna', 'Peter', 'Linda'],
'Age': [28, 24, 35, 32],
'City': ['New York', 'Paris', 'Berlin', 'London']
}
df = pd.DataFrame(data)

2. 使用pivot_table创建透视表

接下来,我们可以使用pivot_table函数来创建透视表。在以下示例中,我们将数据根据'Name'和'Age'进行分组,并计算每组的平均值。

# 创建一个透视表,根据'Name'和'Age'进行分组,并计算每组的平均值,同时保留原始的索引
pivot_table = pd.pivot_table(df, values=['Age'], index=['Name'], aggfunc='mean', margins=True)

3. 查看透视表输出

运行上述代码后,会得到一个包含索引、名称和平均年龄的透视表。以下是输出示例:

Age   All
Name 28.0 NaN
John 28.0 NaN
Anna 24.0 NaN
Linda 32.0 NaN
Peter 35.0 NaN
All NaN NaN

在这个示例中,我们没有设置margins=False,因此透视表中没有全局汇总行。如果需要在透视表中添加全局汇总行,可以将margins=True设置为True。

4. 测试用例

为了更好地理解pivot_table函数的用法,我们可以设计以下测试用例:

测试用例1:不保留原始索引

# 不保留原始索引,只计算平均值
test_df = pd.DataFrame({
'Name': ['John', 'Anna', 'Peter', 'Linda'],
'Age': [28, 24, 35, 32],
'City': ['New York', 'Paris', 'Berlin', 'London']
})
test_pivot_table = pd.pivot_table(test_df, values=['Age'], index=['Name'], aggfunc='mean')
print(test_pivot_table)

测试用例2:保留原始索引

# 保留原始索引,并计算平均值
test_pivot_table = pd.pivot_table(test_df, values=['Age'], index=['Name'], aggfunc='mean', margins=True)
print(test_pivot_table)

5. 查看输出结果

运行上述代码后,你会看到以下输出:

Age   All
Name 24.0 NaN
John 28.0 NaN
Linda 32.0 NaN
Peter 35.0 NaN
All NaN NaN
Age   All
Name 24.0 NaN
John 28.0 NaN
Linda 32.0 NaN
Peter 35.0 NaN
All NaN NaN

6. 人工智能与机器学习应用场景

Pandas的pivot_table函数在自然语言处理(NLP)中也有重要作用。例如,我们可以通过将单词序列转换为词性矩阵,然后使用pivot_table函数来统计每个词性与单词的频率分布。这种方法可以帮助我们识别哪些词性和单词在文本中最常见。

总结

通过上述步骤,我们可以清晰地看到如何使用Pandas的pivot_table函数来创建和分析透视表。透视表是一种强大的工具,能够帮助我们快速汇总数据,发现数据中的模式和趋势。

转载地址:http://civfk.baihongyu.com/

你可能感兴趣的文章
OKR为什么到今天才突然火了?
查看>>
ollama本地部署DeepSeek(Window图文说明)
查看>>
onCreate()方法中的参数Bundle savedInstanceState 的意义用法
查看>>
one_day_one--mkdir
查看>>
ONI文件生成与读取
查看>>
oobbs开发手记
查看>>
OpenCV 中的图像转换
查看>>
opencv&Python——多种边缘检测
查看>>
OpenCV-Python接口、cv和cv2的性能比较
查看>>
opencv26-模板匹配
查看>>
opencv5-图像混合
查看>>
opencv9-膨胀和腐蚀
查看>>
OpenCV与AI深度学习 | YOLO11介绍及五大任务推理演示(目标检测,图像分割,图像分类,姿态检测,带方向目标检测)
查看>>
OpenCV与AI深度学习 | 使用Python和OpenCV实现火焰检测(附源码)
查看>>
OpenCV与AI深度学习 | 使用YOLO11实现区域内目标跟踪
查看>>
OpenCV与AI深度学习 | 使用YOLOv8做目标检测、实例分割和图像分类(包含实例操作代码)
查看>>
OpenCV与AI深度学习 | 基于GAN的零缺陷样本产品表面缺陷检测
查看>>
OpenCV与AI深度学习 | 基于OpenCV和深度学习预测年龄和性别
查看>>
OpenCV与AI深度学习 | 基于Python和OpenCV将图像转为ASCII艺术效果
查看>>
OpenCV与AI深度学习 | 基于PyTorch实现Faster RCNN目标检测
查看>>