📜  将 DataFrame 与 Pandas 结合(1)

📅  最后修改于: 2023-12-03 15:25:13.321000             🧑  作者: Mango

将 DataFrame 与 Pandas 结合

简介

Pandas 是 Python 中经常使用的数据分析工具包之一,其核心数据类型之一就是 DataFrame。DataFrame 是一个二维表格,可以根据索引和标签来存储数据,并支持各种数据操作,如过滤、排序、分组、聚合、合并等。

本文将介绍如何将 DataFrame 与 Pandas 结合,并提供一些示例代码来说明其使用方法。

创建 DataFrame

可以通过多种方式创建 DataFrame,例如使用字典、嵌套列表、CSV 文件等方式。

使用字典
import pandas as pd

data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
        'age': [25, 32, 18, 47],
        'gender': ['F', 'M', 'M', 'M']}
df = pd.DataFrame(data)
print(df)

输出的结果如下:

       name  age gender
0     Alice   25      F
1       Bob   32      M
2   Charlie   18      M
3     David   47      M
使用嵌套列表
import pandas as pd

data = [['Alice', 25, 'F'], ['Bob', 32, 'M'], ['Charlie', 18, 'M'], ['David', 47, 'M']]
df = pd.DataFrame(data, columns=['name', 'age', 'gender'])
print(df)

输出的结果与使用字典方式创建的 DataFrame 相同。

读取 CSV 文件
import pandas as pd

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

其中,data.csv 文件内容如下:

name,age,gender
Alice,25,F
Bob,32,M
Charlie,18,M
David,47,M
数据操作

Pandas 提供了各种数据操作方法,包括过滤、排序、分组、聚合、合并等。

过滤

可以使用布尔索引来对 DataFrame 进行过滤操作。例如,要找出年龄大于等于 30 岁的人,可以使用以下代码:

age_filter = df['age'] >= 30
print(df[age_filter])

输出的结果如下:

    name  age gender
1    Bob   32      M
3  David   47      M
排序

可以使用 sort_values 方法来对 DataFrame 进行排序操作。例如,要按年龄降序排列,可以使用以下代码:

age_desc = df.sort_values(by='age', ascending=False)
print(age_desc)

输出的结果如下:

       name  age gender
3     David   47      M
1       Bob   32      M
0     Alice   25      F
2   Charlie   18      M
分组

可以使用 groupby 方法来对 DataFrame 进行分组操作。例如,要按性别分组,可以使用以下代码:

gender_group = df.groupby(by='gender')
for gender, group in gender_group:
    print(gender)
    print(group)

输出的结果如下:

F
    name  age gender
0  Alice   25      F
M
       name  age gender
1       Bob   32      M
2   Charlie   18      M
3     David   47      M
聚合

可以使用 agg 方法来对 DataFrame 进行聚合操作。例如,要求出每个性别的平均年龄和最大年龄,可以使用以下代码:

gender_agg = gender_group['age'].agg(['mean', 'max'])
print(gender_agg)

输出的结果如下:

        mean  max
gender          
F       25.0   25
M       32.333333   47
合并

可以使用 merge 方法来对两个 DataFrame 进行合并操作。例如,假设现在有另一个 DataFrame,存储每个人的工资信息,并且名称和性别与刚才的 DataFrame 相同,可以使用以下代码将这两个 DataFrame 合并:

import pandas as pd

salary = pd.DataFrame({'name': ['Alice', 'Charlie', 'David'], 'gender': ['F', 'M', 'M'], 'salary': [3500, 2800, 4400]})
df_merged = pd.merge(df, salary, on=['name', 'gender'])
print(df_merged)

输出的结果如下:

      name  age gender  salary
0    Alice   25      F    3500
1  Charlie   18      M    2800
2    David   47      M    4400
结论

通过将 DataFrame 与 Pandas 结合,可以对数据进行各种复杂的操作,以实现数据分析和挖掘。希望本文可以帮助程序员们更好地掌握 Pandas 数据操作的技巧。