20个能够有效提高 Pandas数据分析效率的常用函数,附带解释和例子(上)

简介: 20个能够有效提高 Pandas数据分析效率的常用函数,附带解释和例子

Pandas是一个受众广泛的python数据分析库。它提供了许多函数和方法来加快数据分析过程。pandas之所以如此普遍,是因为它的功能强大、灵活简单。本文将介绍20个常用的 Pandas 函数以及具体的示例代码,助力你的数据分析变得更加高效。

640.png

首先,我们导入 numpypandas包。

import numpy as np
import pandas as pd

1. Query

我们有时需要根据条件筛选数据,一个简单方法是query函数。为了更直观理解这个函数,我们首先创建一个示例 dataframe。

values_1 = np.random.randint(10, size=10)
values_2 = np.random.randint(10, size=10)
years = np.arange(2010,2020)
groups = ['A','A','B','A','B','B','C','A','C','C']
df = pd.DataFrame({'group':groups, 'year':years, 'value_1':values_1, 'value_2':values_2})
df

640.png

使用query函数的语法十分简单:

df.query('value_1 < value_2')

640.png

2. Insert

当我们想要在 dataframe 里增加一列数据时,默认添加在最后。当我们需要添加在任意位置,则可以使用 insert 函数。使用该函数只需要指定插入的位置、列名称、插入的对象数据。

# new column
new_col = np.random.randn(10)
# insert the new column at position 2
df.insert(2, 'new_col', new_col)
df

640.png

3. Cumsum

示例dataframe 包含3个小组的年度数据。我们可能只对年度数据感兴趣,但在某些情况下,我们同样还需要一个累计数据。Pandas提供了一个易于使用的函数来计算加和,即cumsum

如果我们只是简单使用cumsum函数,(A,B,C)组别将被忽略。这样得到的累积值在某些情况下意义不大,因为我们更需要不同小组的累计数据。对于这个问题有一个非常简单方便的解决方案,我们可以同时应用groupbycumsum函数。

df['cumsum_2'] = df[['value_2','group'].groupby('group').cumsum()]
df

640.png

4. Sample

Sample方法允许我们从DataFrame中随机选择数据。当我们想从一个分布中选择一个随机样本时,这个函数很有用。

sample1 = df.sample(n=3)
sample1

640.png

上述代码中,我们通过指定采样数量 n 来进行随机选取。此外,也可以通过指定采样比例 frac 来随机选取数据。当 frac=0.5时,将随机返回一般的数据。

sample2 = df.sample(frac=0.5)
sample2

640.png

为了获得可重复的样品,我们可以指定random_state参数。如果将整数值传递给random_state,则每次运行代码时都将生成相同的采样数据。

5. Where

where函数用于指定条件的数据替换。如果不指定条件,则默认替换值为 NaN。

df['new_col'].where(df['new_col'] > 0, 0)

640.png

where函数首先根据指定条件定位目标数据,然后替换为指定的新数据。上述代码中,where(df['new_col']>0,0)指定'new_col'列中数值大于0的所有数据为被替换对象,并且被替换为0。

重要的一点是,pandas 和 numpy的where函数并不完全相同。我们可以得到相同的结果,但语法存在差异。Np.where还需要指定列对象。以下两行返回相同的结果:

df['new_col'].where(df['new_col'] > 0, 0)
np.where(df['new_col'] > 0, df['new_col'], 0)

6. Isin

在处理数据帧时,我们经常使用过滤或选择方法。Isin是一种先进的筛选方法。例如,我们可以根据选择列表筛选数据。

years = ['2010','2014','2017']
df[df.year.isin(years)]

640.png

7. Loc 和 iloc

Loc 和 iloc 函数用于选择行或者列。

  • loc:通过标签选择
  • iloc:通过位置选择

loc用于按标签选择数据。列的标签是列名。对于行标签,如果我们不分配任何特定的索引,pandas默认创建整数索引。因此,行标签是从0开始向上的整数。与iloc一起使用的行位置也是从0开始的整数。

下述代码实现选择前三行前两列的数据(iloc方式):

df.iloc[:3,:2]

640.png

下述代码实现选择前三行前两列的数据(loc方式):

df.loc[:2,['group','year']]

640.png

注:当使用loc时,包括索引的上界,而使用iloc则不包括索引的上界。

下述代码实现选择"1","3","5"行、"year","value_1"列的数据(loc方式):

df.loc[[1,3,5],['year','value_1']]

640.png

目录
相关文章
|
7天前
|
数据采集 存储 数据挖掘
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第27天】在数据分析领域,Python的Pandas库因其强大的数据处理能力而备受青睐。本文介绍了Pandas在数据导入、清洗、转换、聚合、时间序列分析和数据合并等方面的高效技巧,帮助数据分析师快速处理复杂数据集,提高工作效率。
25 0
|
2天前
|
Python
|
2天前
|
Python
|
1天前
|
机器学习/深度学习 数据采集 数据挖掘
解锁 Python 数据分析新境界:Pandas 与 NumPy 高级技巧深度剖析
Pandas 和 NumPy 是 Python 中不可或缺的数据处理和分析工具。本文通过实际案例深入剖析了 Pandas 的数据清洗、NumPy 的数组运算、结合两者进行数据分析和特征工程,以及 Pandas 的时间序列处理功能。这些高级技巧能够帮助我们更高效、准确地处理和分析数据,为决策提供支持。
7 2
|
1天前
|
Python
Pandas 常用函数-数据合并
Pandas 常用函数-数据合并
9 1
|
2天前
|
索引 Python
Pandas 常用函数-数据排序
10月更文挑战第28天
6 1
|
2天前
|
数据采集 Python
Pandas 常用函数-数据清洗
Pandas 常用函数-数据清洗
11 2
|
2天前
|
Python
Pandas 常用函数-查看数据
Pandas 常用函数-查看数据
8 2
|
2天前
|
SQL JSON 数据库
Pandas 常用函数-读取数据
Pandas 常用函数-读取数据
9 2
|
8天前
|
存储 数据挖掘 数据处理
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第26天】Python 是数据分析领域的热门语言,Pandas 库以其高效的数据处理功能成为数据科学家的利器。本文介绍 Pandas 在数据读取、筛选、分组、转换和合并等方面的高效技巧,并通过示例代码展示其实际应用。
20 1