一、每日一题
解答:
import pandas as pd
def pivotTable(weather: pd.DataFrame) -> pd.DataFrame:
df_pivot = weather.pivot(index='month', columns='city', values='temperature')
return df_pivot
题源:力扣
二、总结
Pandas 是一个强大的 Python 数据分析库,它提供了 pivot
和 pivot_table
方法来重塑和汇总数据,使得数据分析变得更加灵活和高效。这两个方法主要用于行列转换,即“透视”操作,但它们在功能上有所差异。
1.pivot 方法
pivot
方法允许你基于给定的索引、列以及值重新组织DataFrame的数据结构。它适用于简单的数据透视场景,当你的数据不包含重复的(index, columns)组合时。pivot
的基本语法如下:
pivot_table(data, index=None, columns=None, values=None)
data
: 要进行透视操作的DataFrame。index
: 用作新DataFrame行索引的列名或列名列表。columns
: 用作新DataFrame列名的列名或列名列表。values
: 需要进行聚合操作的列名,如果省略,默认使用所有数值列。
例如,如果你有一个包含城市、月份和温度的数据集,并且想按月份将城市作为列展示,你可以使用 pivot
方法。
2.pivot_table 方法
pivot_table
是一个更加强大和灵活的方法,它不仅能够处理 pivot
的所有功能,还可以处理数据聚合、缺失值填充等高级操作。特别是,当你的数据在转换后存在(index, columns)的重复项时,pivot_table
就显得尤为重要了。它允许你指定聚合函数(如均值、总和等)来处理这些重复值。pivot_table
的基本语法如下:
pivot_table(data, values=None, index=None, columns=None, aggfunc='mean',
fill_value=None, margins=False, dropna=True, margins_name='All')
aggfunc
: 指定聚合函数,可以是字符串(如'mean'
,'sum'
)、函数(如np.sum
)或者一个字典(用于不同的列应用不同的聚合函数)。fill_value
: 用于填充缺失值的值,默认为None
。margins
: 是否计算边缘总计(行总计和列总计),默认为False
。dropna
: 是否删除包含NaN值的行或列,默认为True
。margins_name
: 当margins=True
时,边缘总计的列或行标签名称,默认为'All'
。
使用 pivot_table
,可以在重排数据的同时进行数据汇总,比如计算每个月每个城市的平均温度、最大温度等。
官方文档
2024.5.14