4.6 DataFrame的转换与重塑(基础)
Pandas DataFrame转换与重塑基础教程 | 入门指南
本章节详细讲解Pandas DataFrame的基础转换与重塑操作,包括DataFrame与Series的转换(取行/列、stack/unstack)、DataFrame与NumPy数组、列表、字典的互转方法,以及数据类型修改(astype、infer_dtype)和转置(T属性),配简单代码示例,帮助Pandas初学者快速掌握。
推荐工具
DataFrame的转换与重塑(基础)
引言
Pandas的DataFrame是一个强大的二维数据结构,广泛用于数据处理和分析。在实际应用中,经常需要转换和重塑DataFrame以适应不同需求,例如数据合并、转置或数据类型调整。本章节将介绍DataFrame的基础转换与重塑操作,让新手快速上手。
1. DataFrame的转换与重塑基础
DataFrame的转换与重塑主要指改变数据的结构或格式,例如从宽格式转为长格式、调整行/列顺序等。这在数据清洗和准备阶段非常关键。
2. DataFrame与Series的转换
取行或列
- 取一列:使用列名获取一个Series,例如
df['列名']。 - 取一行:使用索引获取一个Series,例如
df.loc[行索引]或df.iloc[位置]。 - 示例代码:
import pandas as pd df = pd.DataFrame({'A': [1, 2], 'B': [3, 4]}) series_col = df['A'] # 获取列A为Series series_row = df.loc[0] # 获取第一行为Series
stack和unstack基础
- stack:将列层级转换为行,将DataFrame转换为Series,适用于多级索引。
- unstack:将行层级转换为列,将Series转换为DataFrame。
- 示例代码:
df = pd.DataFrame({'A': [1, 2], 'B': [3, 4]}, index=['X', 'Y']) stacked = df.stack() # 转换为Series,索引为多层 unstacked = stacked.unstack() # 转回DataFrame
3. DataFrame与NumPy数组、列表、字典的转换
DataFrame转NumPy数组
- 使用
.values属性:df.values返回一个NumPy数组。 - 示例:
numpy_array = df.values
NumPy数组转DataFrame
- 使用
pd.DataFrame()函数:例如pd.DataFrame(numpy_array, columns=['列名'])。 - 示例代码:
import numpy as np arr = np.array([[1, 2], [3, 4]]) df_from_arr = pd.DataFrame(arr, columns=['A', 'B'])
DataFrame转列表或字典
- 转列表:使用
.to_numpy().tolist()或.values.tolist()获取列表形式的嵌套列表。 - 转字典:使用
.to_dict()方法,参数如'list'(每列为列表)或'records'(每行为字典)。 - 示例代码:
df = pd.DataFrame({'A': [1, 2], 'B': [3, 4]}) list_data = df.values.tolist() dict_data = df.to_dict('records') # 返回[{'A': 1, 'B': 3}, {'A': 2, 'B': 4}]
4. 修改DataFrame的数据类型(astype、infer_dtype)
astype方法
- 用于显式转换数据类型,例如将整数转为浮点数或字符串。
- 示例代码:
df['A'] = df['A'].astype('float') # 将列A转为浮点型
infer_dtype函数
- 属于Pandas的
api.types模块,用于推断数据类型。 - 示例代码:
from pandas.api.types import infer_dtype dtype = infer_dtype(df['A']) # 返回数据类型的推断,如'int64' - 注意:
infer_dtype主要用于分析,而astype用于修改。
5. DataFrame的转置(T属性)
- 转置是交换行和列,使用
.T属性。 - 示例代码:
df = pd.DataFrame({'A': [1, 2], 'B': [3, 4]}, index=['X', 'Y']) transposed = df.T # 转置后,行变列,列变行
总结
本章节介绍了DataFrame的基础转换与重塑操作,涵盖与Series的转换、与NumPy数组、列表、字典的互转,数据类型修改以及转置。通过示例代码,新手可以快速理解和应用这些功能,为后续高级Pandas操作打下基础。建议结合实际数据练习以加深理解。
实践建议
- 尝试在Jupyter Notebook中运行代码示例。
- 使用自己的数据应用这些方法,观察效果。
- 参考Pandas官方文档获取更多高级功能。
开发工具推荐