📜  Pandas 备忘单(1)

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

Pandas 备忘单

简介

Pandas 是基于 NumPy 数组构建的高性能数据结构和数据分析工具,它被广泛应用于数据预处理、数据清洗和数据转换等领域,是数据科学家必须掌握的工具之一。

安装

Pandas 可以通过 pip 工具进行安装,执行以下命令即可:

pip install pandas
导入

在使用 Pandas 之前,需要先导入 Pandas 模块,通常使用如下语句:

import pandas as pd

在下文的示例中,我们将采用这种方法导入 Pandas。

数据结构

Pandas 主要支持两种核心数据结构:Series 和 DataFrame。

Series

Series 是一种带标签的一维数组,可以存储整数、浮点数、字符串等类型的数据。在创建 Series 时需要指定数据和标签,示例代码如下:

import pandas as pd

# 创建 Series
series = pd.Series([10, 20, 30, 40], index=["a", "b", "c", "d"])
print(series)

# 输出结果
'''
a    10
b    20
c    30
d    40
dtype: int64
'''
DataFrame

DataFrame 是一种带标签的二维表格数据结构,可以用于存储关系型数据,类似于 SQL 数据库中的表格。在创建 DataFrame 时可以通过传递字典、Numpy 数组、Series 数组等方式指定数据源,示例代码如下:

import pandas as pd
import numpy as np

# 创建 DataFrame
data = {"name": ["John", "Mike", "Sarah", "Ben"],
        "age": [23, 45, 31, 52],
        "salary": np.array([5000, 8000, 6000, 12000])}
df = pd.DataFrame(data)
print(df)

# 输出结果
'''
    name  age  salary
0   John   23    5000
1   Mike   45    8000
2  Sarah   31    6000
3    Ben   52   12000
'''
数据操作

Pandas 支持多种数据操作,包括数据筛选、数据删除、数据修改等。

数据筛选

在 Pandas 中,可以使用 loc 或 iloc 属性进行数据筛选。其中 loc 属性用于通过标签(Label)索引数据,iloc 属性用于通过位置(Position)索引数据。示例代码如下:

import pandas as pd

# 创建 DataFrame
data = {"name": ["John", "Mike", "Sarah", "Ben"],
        "age": [23, 45, 31, 52],
        "salary": [5000, 8000, 6000, 12000]}
df = pd.DataFrame(data)

# 通过标签筛选数据
result1 = df.loc[df["name"] == "Mike"]
print(result1)

# 通过位置筛选数据
result2 = df.iloc[1]
print(result2)

# 输出结果
'''
   name  age  salary
1  Mike   45    8000

name       Mike
age          45
salary     8000
Name: 1, dtype: object
'''
数据删除

在 Pandas 中,可以使用 drop 方法删除指定行或列的数据。示例代码如下:

import pandas as pd

# 创建 DataFrame
data = {"name": ["John", "Mike", "Sarah", "Ben"],
        "age": [23, 45, 31, 52],
        "salary": [5000, 8000, 6000, 12000]}
df = pd.DataFrame(data)

# 删除指定行
result1 = df.drop(2)
print(result1)

# 删除指定列
result2 = df.drop("salary", axis=1)
print(result2)

# 输出结果
'''
    name  age  salary
0   John   23    5000
1   Mike   45    8000
3    Ben   52   12000

    name  age
0   John   23
1   Mike   45
2  Sarah   31
3    Ben   52
'''
数据修改

在 Pandas 中,可以使用 loc 或 iloc 属性进行数据修改。示例代码如下:

import pandas as pd

# 创建 DataFrame
data = {"name": ["John", "Mike", "Sarah", "Ben"],
        "age": [23, 45, 31, 52],
        "salary": [5000, 8000, 6000, 12000]}
df = pd.DataFrame(data)

# 修改指定单元格数据
df.loc[2, "salary"] = 7000
print(df)

# 输出结果
'''
    name  age  salary
0   John   23    5000
1   Mike   45    8000
2  Sarah   31    7000
3    Ben   52   12000
'''
数据统计

Pandas 支持多种数据统计和分析功能,例如:描述性统计、数据聚合和数据透视表等。

描述性统计

在 Pandas 中,可以使用 describe 方法进行描述性统计,它能够计算出数据的均值、方差、最小值、最大值、中位数等数值。示例代码如下:

import pandas as pd
import numpy as np

# 创建 DataFrame
data = {"name": ["John", "Mike", "Sarah", "Ben"],
        "age": [23, 45, 31, 52],
        "salary": np.array([5000, 8000, 6000, 12000])}
df = pd.DataFrame(data)

# 计算描述性统计信息
result = df.describe()
print(result)

# 输出结果
'''
             age        salary
count   4.000000      4.000000
mean   37.750000   7750.000000
std    13.270958   2683.281573
min    23.000000   5000.000000
25%    28.500000   5750.000000
50%    38.000000   7000.000000
75%    47.250000   9000.000000
max    52.000000  12000.000000
'''
数据聚合

在 Pandas 中,可以使用 groupby 方法进行数据聚合,它能够将数据按照指定的列进行分组统计。示例代码如下:

import pandas as pd

# 创建 DataFrame
data = {"name": ["John", "Mike", "Sarah", "Ben", "Alice"],
        "age": [23, 45, 31, 52, 25],
        "salary": [5000, 8000, 6000, 12000, 7000],
        "gender": ["male", "male", "female", "male", "female"]}
df = pd.DataFrame(data)

# 按照性别进行分组统计
result = df.groupby(by="gender")["salary"].mean()
print(result)

# 输出结果
'''
gender
female    6500.0
male      8333.333333
Name: salary, dtype: float64
'''
数据透视表

在 Pandas 中,可以使用 pivot_table 方法进行数据透视表操作,它能够将数据按照指定的列进行聚合分析,类似于 Excel 中的数据透视表。示例代码如下:

import pandas as pd

# 创建 DataFrame
data = {"name": ["John", "Mike", "Sarah", "Ben", "Alice"],
        "age": [23, 45, 31, 52, 25],
        "salary": [5000, 8000, 6000, 12000, 7000],
        "gender": ["male", "male", "female", "male", "female"]}
df = pd.DataFrame(data)

# 创建数据透视表
result = pd.pivot_table(df, values="salary", index="gender", columns="age")
print(result)

# 输出结果
'''
age       23     25     31      45       52
gender                                     
female   NaN   7000.0  6000.0   NaN      NaN
male    5000.0   NaN   NaN    8000.0  12000.0
'''
数据可视化

Pandas 支持多种数据可视化功能,包括:折线图、柱状图、饼状图等。

折线图

在 Pandas 中,可以使用 plot 方法进行折线图绘制,它能够展示数据在时间轴上的变化趋势。示例代码如下:

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

# 创建 DataFrame
data = {"year": [2016, 2017, 2018, 2019, 2020],
        "sales": [5000, 8000, 6000, 12000, 10000]}
df = pd.DataFrame(data)

# 绘制折线图
df.plot(x="year", y="sales", kind="line")
plt.show()
柱状图

在 Pandas 中,可以使用 plot 方法进行柱状图绘制,它能够展示数据的分布情况。示例代码如下:

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

# 创建 DataFrame
data = {"year": [2016, 2017, 2018, 2019, 2020],
        "sales": [5000, 8000, 6000, 12000, 10000]}
df = pd.DataFrame(data)

# 绘制柱状图
df.plot(x="year", y="sales", kind="bar")
plt.show()
饼状图

在 Pandas 中,可以使用 plot 方法进行饼状图绘制,它能够展示数据的占比情况。示例代码如下:

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

# 创建 DataFrame
data = {"year": [2016, 2017, 2018, 2019, 2020],
        "sales": [5000, 8000, 6000, 12000, 10000]}
df = pd.DataFrame(data)

# 绘制饼状图
df.plot(x="year", y="sales", kind="pie")
plt.show()
总结

本文介绍了 Pandas 的基本使用方法,包括数据结构、数据操作、数据统计和数据可视化等方面。Pandas 是数据科学家必须掌握的工具之一,如果您想要成为一名数据科学家或数据分析师,那么一定要学习并熟练使用 Pandas。