📚 目录
- 高级索引技术
- 使用
.apply()
和.map()
- 数据透视表(Pivot Tables)
- 使用
merge()
和join()
合并数据 - 时间序列处理
- 使用
melt()
和pivot()
改变数据结构 - 参考资料
- 出站链接
1. 高级索引技术
Pandas 提供了强大的索引功能,可以使用多级索引(MultiIndex)来对数据进行复杂的分层和索引。它允许你在一组数据上进行多维度查询和聚合操作。
✅ 创建多级索引
index = pd.MultiIndex.from_tuples([('A', 1), ('A', 2), ('B', 1)], names=['Letter', 'Number'])
df = pd.DataFrame({'Data': [10, 20, 30]}, index=index)
print(df)
2. 使用 .apply()
和 .map()
.apply()
和 .map()
是 Pandas 中非常强大的功能,适用于对 Series 或 DataFrame 的列进行逐元素操作。
✅ .apply()
示例:
df['Age'].apply(lambda x: x + 1) # 将年龄加1
✅ .map()
示例:
df['City'].map({'New York': 'NYC', 'London': 'LDN'}) # 映射城市名称
3. 数据透视表(Pivot Tables)
数据透视表是一种将数据聚合并重排的强大工具,能够帮助快速进行数据分析。
✅ 创建数据透视表:
pivot_table = df.pivot_table(values='Age', index='City', aggfunc='mean')
print(pivot_table)
数据透视表支持多重聚合和分组,可以用来总结、分析数据。
4. 使用 merge()
和 join()
合并数据
合并操作常常是数据预处理中的一部分,Pandas 提供了 merge()
和 join()
方法来方便地将多个 DataFrame 合并。
✅ 使用 merge()
合并:
df1 = pd.DataFrame({'ID': [1, 2], 'Age': [22, 34]})
df2 = pd.DataFrame({'ID': [1, 2], 'City': ['NY', 'LA']})
merged_df = pd.merge(df1, df2, on='ID')
print(merged_df)
✅ 使用 join()
合并:
df1.set_index('ID').join(df2.set_index('ID'))
5. 时间序列处理
Pandas 提供了强大的时间序列处理功能,包括日期解析、重采样和时区转换。
✅ 生成时间序列数据:
dates = pd.date_range('20230101', periods=6)
df = pd.DataFrame({'Date': dates, 'Value': [1, 2, 3, 4, 5, 6]})
print(df)
✅ 重采样:
df.set_index('Date').resample('M').sum() # 按月重采样求和
6. 使用 melt()
和 pivot()
改变数据结构
在数据预处理过程中,melt()
和 pivot()
是常用的功能,用于将数据的格式转化为适合分析的结构。
✅ 使用 melt()
将宽格式数据转换为长格式:
df_melted = df.melt(id_vars=['City'], value_vars=['Age', 'Income'])
print(df_melted)
✅ 使用 pivot()
将长格式数据转换为宽格式:
df_pivoted = df_melted.pivot(index='City', columns='variable', values='value')
print(df_pivoted)
📖 参考资料
- 《Python for Data Analysis》第八章:高级数据操作
- Pandas 官方文档:pandas.DataFrame.pivot_table() 方法
- Real Python – A Guide to Pandas Merge, Join, and Concatenate
发表回复