📅  最后修改于: 2023-12-03 15:18:14.706000             🧑  作者: Mango
Pandas 是基于 NumPy 数组构建的高性能数据结构和数据分析工具,它被广泛应用于数据预处理、数据清洗和数据转换等领域,是数据科学家必须掌握的工具之一。
Pandas 可以通过 pip 工具进行安装,执行以下命令即可:
pip install pandas
在使用 Pandas 之前,需要先导入 Pandas 模块,通常使用如下语句:
import pandas as pd
在下文的示例中,我们将采用这种方法导入 Pandas。
Pandas 主要支持两种核心数据结构:Series 和 DataFrame。
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 是一种带标签的二维表格数据结构,可以用于存储关系型数据,类似于 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。