ZetCode

Python 数据帧 (DataFrame)

最后修改于 2025 年 2 月 25 日

DataFrame 是 Python 中一种二维、大小可变且可能包含不同类型数据的表格数据结构。 它是数据分析中最常用的数据结构之一,由 Pandas 库提供。 本教程涵盖了创建、操作和分析 DataFrame 的基础知识,并提供了实际示例。

安装 Pandas

您可以使用 pip 安装 Pandas 库

$ pip install pandas

创建 DataFrame

此示例演示如何从字典创建 DataFrame。

create_dataframe.py
import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'City': ['New York', 'Los Angeles', 'Chicago']
}

df = pd.DataFrame(data)
print(df)

DataFrame 是从字典创建的,其中键是列名,值是数据列表。 输出是数据的表格表示。

从 CSV 文件读取数据

此示例演示如何将数据从 CSV 文件读取到 DataFrame 中。

read_csv.py
import pandas as pd

df = pd.read_csv('data.csv')
print(df)

read_csv 函数从 CSV 文件读取数据并创建 DataFrame。 这是将数据加载到 DataFrame 中最常见的方式之一。

选择列

此示例演示如何从 DataFrame 中选择特定列。

select_columns.py
import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'City': ['New York', 'Los Angeles', 'Chicago']
}

df = pd.DataFrame(data)
print(df['Name'])  # Select a single column
print(df[['Name', 'City']])  # Select multiple columns

可以使用列名选择列。 单个列作为 Series 返回,而多个列作为 DataFrame 返回。

过滤行

此示例演示如何根据条件过滤行。

filter_rows.py
import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'City': ['New York', 'Los Angeles', 'Chicago']
}

df = pd.DataFrame(data)
filtered_df = df[df['Age'] > 30]
print(filtered_df)

可以使用布尔条件过滤行。 在此示例中,仅选择年龄大于 30 的行。

添加新列

此示例演示如何向 DataFrame 添加新列。

add_column.py
import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'City': ['New York', 'Los Angeles', 'Chicago']
}

df = pd.DataFrame(data)
df['Salary'] = [70000, 80000, 90000]
print(df)

可以通过将值列表分配给新列名来向 DataFrame 添加新列。

分组和聚合数据

此示例演示如何分组数据并执行聚合。

group_aggregate.py
import pandas as pd

data = {
    'City': ['New York', 'Los Angeles', 'Chicago', 'New York', 'Chicago'],
    'Sales': [200, 150, 300, 250, 400]
}

df = pd.DataFrame(data)
grouped_df = df.groupby('City').sum()
print(grouped_df)

groupby 函数按特定列对数据进行分组,sum 函数聚合分组的数据。 在此示例中,销售额按城市求和。

使用 DataFrames 的最佳实践

来源

Pandas DataFrame 文档

在本文中,我们探讨了 Python DataFrames,并通过实际示例演示了它们的用例。

作者

我叫 Jan Bodnar,是一位充满激情的程序员,拥有丰富的编程经验。 自 2007 年以来,我一直撰写编程文章。 迄今为止,我已撰写了 1,400 多篇文章和 8 本电子书。 我拥有超过十年的编程教学经验。

列出所有 Python 教程