在 Python 中,pandas.DataFrame
是一个非常强大的数据结构,用于表示表格、多维数组或异质型数据表。这是 pandas 库中最常用的对象之一,广泛应用于数据分析、数据清洗、数据转换及统计建模等任务。
基本特征
- 二维大小可变:DataFrame 可以修改大小,且可以修改其行索引和列标签。
- 异质型:每一列可以是不同的数据类型(数值、字符串、布尔值等)。
- 标签轴:数据操作时行和列都可以通过标签进行操作。
- 可以进行算术运算:具有灵活的工具进行算术运算和自动数据对齐。
创建 DataFrame
DataFrame 可以通过多种方式创建,例如从列表、字典、读取文件等:
1. 从列表创建
import pandas as pd
data = [
[1, 'Alice', 22],
[2, 'Bob', 27],
[3, 'Chris', 25]
]
df = pd.DataFrame(data, columns=['ID', 'Name', 'Age'])
print(df)
2. 从字典创建
data = {
'ID': [1, 2, 3],
'Name': ['Alice', 'Bob', 'Chris'],
'Age': [22, 27, 25]
}
df = pd.DataFrame(data)
print(df)
3. 从 NumPy 数组创建
如果你有一个 NumPy 数组,可以直接将它转换成 DataFrame:
import numpy as np
array = np.array([[1, 'Alice', 22], [2, 'Bob', 27], [3, 'Chris', 25]])
df = pd.DataFrame(array, columns=['ID', 'Name', 'Age'])
print(df)
主要功能
数据检索
- 查看数据:
head()
和tail()
方法用于快速查看 DataFrame 的首部和尾部数据。 - 选择列:可以通过列名直接选择列,例如
df['Name']
。 - 选择行:可以使用
loc
(基于标签的选择)和iloc
(基于位置的选择)进行行选择。
数据清洗
- 处理缺失数据:可以使用
dropna()
移除有缺失值的行或列,或使用fillna()
填充缺失值。 - 数据过滤:使用条件语句进行过滤,例如
df[df['Age'] > 24]
。
数据统计
- 描述统计:使用
describe()
可以提供每一列的统计摘要(如均值、标准差、最小值、最大值等)。 - 求和、平均值等:方法如
sum()
、mean()
等可以快速计算总和或平均值。
数据合并与分组
- 合并:
merge()
和concat()
可以用来合并多个 DataFrame。 - 分组:
groupby()
方法允许你按照某些标准将数据分组并对每组数据应用函数(如求和、平均等)。
示例:使用 DataFrame
以下是一个简单的示例,展示了 DataFrame 的一些基本操作:
import pandas as pd
# 创建 DataFrame
data = {'Name': ['Alice', 'Bob', 'Chris'], 'Age': [25, 26, 27], 'Salary': [50000, 54000, 50000]}
df = pd.DataFrame(data)
# 基本统计
print(df.describe())
# 增加一列
df['Department'] = ['HR', 'Tech', 'Marketing']
# 数据过滤
df_filtered = df[df['Age'].astype(int) > 25]
print(df)
print(df_filtered)
DataFrame 是 pandas 中极其核心的部分,能有效支持各种数据操作,是处理表格数据的强大工具。