📚 目录

  1. 高级索引技术
  2. 使用 .apply().map()
  3. 数据透视表(Pivot Tables)
  4. 使用 merge()join() 合并数据
  5. 时间序列处理
  6. 使用 melt()pivot() 改变数据结构
  7. 参考资料
  8. 出站链接

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

🔗 出站链接