📜  在 Pandas DataFrame 上创建视图(1)

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

在 Pandas DataFrame 上创建视图

在数据分析中,我们通常需要对数据进行筛选、排序、分组等操作以获取所需的信息和洞察数据的规律。Pandas 是一个非常流行的 Python 数据分析库,它提供了丰富的函数和方法,使得数据分析变得更加高效和便捷。在 Pandas DataFrame 上创建视图是其中一个非常重要的操作,本文将介绍如何在 Pandas DataFrame 上创建视图。

什么是视图

视图是指共享相同数据存储的不同表面呈现方式。在 Pandas 的 DataFrame 中,我们可以创建多个视图并独立地对每个视图进行操作,而不会对原始数据产生修改。这是一种非常强大和安全的数据处理方式,因为针对同一份数据,我们可以创建多种形式的视图以适应不同的分析需求,而不必担心数据误操作的风险。

如何创建视图

创建视图的方法可以使用 Pandas 的 loc、iloc、query 和布尔索引等方式。下面是几种常用的方式:

使用 loc 和 iloc

loc 和 iloc 可以实现按照某个条件对数据进行切片,得到需要的数据视图。相比于直接修改原始数据,这种方式可以更高效地从原始数据中提取所需的信息。

import pandas as pd

# 创建数据
data = {'name': ['Tom', 'Jerry', 'Amy', 'Jim', 'Jack'],
        'score': [80, 90, 70, 85, 75],
        'age': [18, 17, 19, 20, 18]}

# 转换为 DataFrame 格式
df = pd.DataFrame(data)

# 使用 loc 获取 score 大于等于 80 分的数据视图
df_view = df.loc[df['score'] >= 80]

# 打印视图
print(df_view)

上述代码使用 loc 获取分数大于等于 80 分的数据视图,并将视图存储在变量 df_view 中。可以看到,原始数据并没有改变,df_view 中仅包含满足条件的数据。使用 iloc 也可以实现类似的切片操作。

使用 query 方法

query 方法可以实现按照某个条件进行查询,并生成一个查询结果的视图。query 方法支持 SQL 语法,可以在查询时使用多个条件和逻辑运算符。

import pandas as pd

# 创建数据
data = {'name': ['Tom', 'Jerry', 'Amy', 'Jim', 'Jack'],
        'score': [80, 90, 70, 85, 75],
        'age': [18, 17, 19, 20, 18]}

# 转换为 DataFrame 格式
df = pd.DataFrame(data)

# 使用 query 获取 score 大于等于 80 分的数据视图
df_view = df.query('score >= 80')

# 打印视图
print(df_view)

上述代码使用 query 方法获取分数大于等于 80 分的数据视图,并将视图存储在变量 df_view 中。

使用布尔索引

布尔索引是一种针对 Pandas DataFrame 的高效筛选方法,可以实现按照某个条件对数据进行筛选,并生成一个筛选结果的视图。

import pandas as pd

# 创建数据
data = {'name': ['Tom', 'Jerry', 'Amy', 'Jim', 'Jack'],
        'score': [80, 90, 70, 85, 75],
        'age': [18, 17, 19, 20, 18]}

# 转换为 DataFrame 格式
df = pd.DataFrame(data)

# 使用布尔索引获取 score 大于等于 80 分的数据视图
df_view = df[df['score'] >= 80]

# 打印视图
print(df_view)

上述代码使用布尔索引获取分数大于等于 80 分的数据视图,并将视图存储在变量 df_view 中。

总结

本文介绍了在 Pandas DataFrame 上创建视图的几种方式,包括 loc、iloc、query 方法和布尔索引。视图是针对同一份数据的多重表面呈现方式,可以更高效和安全地操作数据,适应不同的分析需求。在数据分析领域中,熟练掌握视图的创建和操作是非常重要的技能。