Pandas数据分析常用函数的使用

  • Post category:Python

Pandas 数据分析常用函数使用攻略

Pandas 是一个 Python 数据分析库,提供了大量的灵活高效的数据结构和函数,具有数据清洗、数据处理、数据分析、数据可视化等功能。

本篇攻略主要介绍 Pandas 数据分析常用函数的使用,内容包括:

  • 数据结构介绍
  • 常用数据操作函数
  • 数据的聚合和分组
  • 数据的合并和连接
  • 数据的可视化

数据结构介绍

Pandas 主要提供了两种数据结构:Series 和 DataFrame,Series 是一维数据结构,类似于一列数据,DataFrame 是二维数据结构,类似于多行多列的表格。

Series

Series 是一种类似于数组的数据结构,由一组数据以及一组与之关联的数据标签(索引)组成。

创建 Series 对象的方式如下:

import pandas as pd
import numpy as np

s = pd.Series([1, 3, 5, np.nan, 6, 8])
print(s)

输出结果如下:

0    1.0
1    3.0
2    5.0
3    NaN
4    6.0
5    8.0
dtype: float64

DataFrame

DataFrame 是一种类似于表格的二维数据结构,包含了行标签和列标签。

创建 DataFrame 对象的方式如下:

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'A': 1.,
    'B': pd.Timestamp('20130102'),
    'C': pd.Series(1, index=list(range(4)), dtype='float32'),
    'D': np.array([3] * 4, dtype='int32'),
    'E': pd.Categorical(["test", "train", "test", "train"]),
    'F': 'foo'
})
print(df)

输出结果如下:

     A          B    C  D      E    F
0  1.0 2013-01-02  1.0  3   test  foo
1  1.0 2013-01-02  1.0  3  train  foo
2  1.0 2013-01-02  1.0  3   test  foo
3  1.0 2013-01-02  1.0  3  train  foo

常用数据操作函数

读取数据

Pandas 支持读取多种格式的数据,如 CSV、Excel、SQL 数据库,常用函数包括 read_csv、read_excel、read_sql 等。

以 read_csv 函数为例,读取一个 CSV 文件:

import pandas as pd

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

筛选数据

Pandas 提供了多种方式进行数据的筛选、过滤,常用函数包括 loc、iloc、isin、query 等。

以 loc 函数为例,通过标签筛选数据:

import pandas as pd

data = {'name': ['Tom', 'Jack', 'Steve', 'Ricky'], 
        'age': [28, 34, 29, 42]}
df = pd.DataFrame(data)
result = df.loc[df['age'] > 30]
print(result)

排序数据

Pandas 支持按照指定的列或行进行排序,常用函数包括 sort_values、sort_index 等。

以 sort_values 函数为例,按照 age 列进行降序排序:

import pandas as pd

data = {'name': ['Tom', 'Jack', 'Steve', 'Ricky'], 
        'age': [28, 34, 29, 42]}
df = pd.DataFrame(data)
result = df.sort_values('age', ascending=False)
print(result)

数据的聚合和分组

Pandas 支持将数据分成多个组,并对每个组进行聚合计算,常用函数包括 groupby、agg、apply 等。

以 groupby 函数为例,对数据按照 age 列进行分组,并计算每组的平均值:

import pandas as pd

data = {'name': ['Tom', 'Jack', 'Steve', 'Ricky'], 
        'age': [28, 34, 29, 42]}
df = pd.DataFrame(data)
result = df.groupby('age').mean()
print(result)

数据的合并和连接

Pandas 支持将多个数据结构合并成一个,常用函数包括 merge、concat、join 等。

以 merge 函数为例,将两个 DataFrame 对象按照指定的键值进行合并:

import pandas as pd

left = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3'],
                     'A': ['A0', 'A1', 'A2', 'A3'],
                     'B': ['B0', 'B1', 'B2', 'B3']})

right = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3'],
                      'C': ['C0', 'C1', 'C2', 'C3'],
                      'D': ['D0', 'D1', 'D2', 'D3']})

result = pd.merge(left, right, on='key')
print(result)

数据的可视化

Pandas 提供了简单易用的可视化工具,可以生成多种类型的图表,常用函数包括 plot、hist、scatter 等。

以 plot 函数为例,生成一个简单的折线图:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

s = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2000', periods=1000))
s = s.cumsum()

s.plot()
plt.show()

示例

下面给出一个示例,读取一个 CSV 文件,筛选出 age 大于 25 的行,并按照 sex、age 列进行分组计算平均值:

import pandas as pd

df = pd.read_csv('data.csv')
result = df.loc[df['age'] > 25].groupby(['sex', 'age']).mean()
print(result)