python pandas库-dataframe.pivot()方法的理解

本文详细介绍Python pandas库中Pivot()函数的使用方法,包括如何通过指定index、columns和values参数来重塑DataFrame,实现数据帧的转换。

  python pandas库中读取csv表格数据到数据帧中(dataframe),pandas库有一些常用的数据帧重塑方法,比如Pivot().

Pivot

  pivot()方法用于创建一个新的派生表,首先看官方文档:
在这里插入图片描述
  函数返回一个重塑后的DataFrame,接收三个参数:

  • idnex:用作新数据帧的索引
  • columns:用作新数据帧的列
  • values:新数据帧的填充值

  如下,原始表格:
在这里插入图片描述
  读取到DataFrame中后,调用该语句df.pivot(index='student_id',columns='subject_name',values='scores'),得到新的数据帧,转化为表格如下表所示:
在这里插入图片描述

### 如何在Python中使用DataFramepivot方法 `pivot` 方法Pandas 中用于数据重塑的一个重要工具,可以将 DataFrame 的行和列进行转换。此方法适用于数据集中每个 `index/column` 对应唯一值的情况。如果存在重复的 `index/column` 对应关系,则会抛出异常[^4]。 以下是 `pivot` 方法的基本语法及其参数说明: ```python DataFrame.pivot(self, index=None, columns=None, values=None) ``` - **index**: 指定作为新 DataFrame 行索引的列。 - **columns**: 指定作为新 DataFrame 列索引的列。 - **values**: 指定用作新 DataFrame 值的列。 #### 示例代码 以下是一个简单的示例,展示如何使用 `pivot` 方法: ```python import pandas as pd # 创建一个示例 DataFrame data = { 'name': ['bangbangzhi', 'bangbangzhi', 'hello', 'hello'], 'city': ['chengdu', 'beijing', 'shanghai', 'tianjin'], 'value': [10, 20, 30, 40] } df = pd.DataFrame(data) # 使用 pivot 方法重塑数据 pivot_df = df.pivot(index='name', columns='city', values='value') print(pivot_df) ``` 运行结果如下: ``` city beijing chengdu shanghai tianjin name bangbangzhi 20 10 NaN NaN hello NaN NaN 30.0 40.0 ``` 在这个例子中,`name` 列被设置为行索引,`city` 列被设置为列索引,而 `value` 列则作为填充数据的值[^4]。 #### 注意事项 1. 如果数据中存在重复的 `index/column` 组合,则需要先对数据进行聚合处理(如使用 `pivot_table` 方法),或者删除重复项。 2. `pivot` 方法仅适用于简单的一对一映射场景。对于更复杂的聚合需求,推荐使用 `pivot_table`[^4]。 ```python # 使用 pivot_table 进行聚合 pivot_table_df = df.pivot_table(values='value', index='name', columns='city', aggfunc='sum', fill_value=0) print(pivot_table_df) ``` #### 输出 ``` city beijing chengdu shanghai tianjin name bangbangzhi 20 10 0 0 hello 0 0 30 40 ``` 在这里,`aggfunc='sum'` 参数指定了对重复值进行求和操作,而 `fill_value=0` 则用于填充缺失值[^4]。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值