Pandas 是 Python 语言的一个扩展程序库,用于数据分析。
Pandas 的主要数据结构是 Series (一维数据)与 DataFrame(二维数据)。
数据结构
Series 是一种类似于一维数组的对象,它由一组数据(各种 Numpy 数据类型)以及一组与之相关的数据标签(即索引)组成。
DataFrame 是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型值)。DataFrame 既有行索引也有列索引,它可以被看做由 Series 组成的字典(共同用一个索引)。
Pandas 应用
Pandas 在数据科学和数据分析领域中具有广泛的应用,其主要优势在于能够处理和分析结构化数据。
以下是 Pandas 的一些主要应用领域:
-
数据清洗和预处理: Pandas被广泛用于清理和预处理数据,包括处理缺失值、异常值、重复值等。它提供了各种方法来使数据更适合进行进一步的分析。
-
数据分析和统计: Pandas使数据分析变得更加简单,通过DataFrame和Series的灵活操作,用户可以轻松地进行统计分析、汇总、聚合等操作。从均值、中位数到标准差和相关性分析,Pandas都提供了丰富的功能。
-
数据可视化: 将Pandas与Matplotlib、Seaborn等数据可视化库结合使用,可以创建各种图表和图形,从而更直观地理解数据分布和趋势。这对于数据科学家、分析师和决策者来说都是关键的。
-
时间序列分析: Pandas在处理时间序列数据方面表现出色,支持对日期和时间进行高效操作。这对于金融领域、生产领域以及其他需要处理时间序列的行业尤为重要。
-
机器学习和数据建模: 在机器学习中,数据预处理是非常关键的一步,而Pandas提供了强大的功能来处理和准备数据。它可以帮助用户将数据整理成适用于机器学习算法的格式。
-
数据库操作: Pandas可以轻松地与数据库进行交互,从数据库中导入数据到DataFrame中,进行分析和处理,然后将结果导回数据库。这在数据库管理和分析中非常有用。
-
实时数据分析: 对于需要实时监控和分析数据的应用,Pandas的高效性能使其成为一个强大的工具。结合其他实时数据处理工具,可以构建实时分析系统。
Pandas 安装
pip install pandas
1.查看版本
import pandas as pd
pd.__version__ # 查看版本
1.1.5
Pandas数据结构-series
Pandas Series 类似表格中的一个列(column),类似于一维数组,可以保存任何数据类型。
Series 特点:
-
索引: 每个
Series
都有一个索引,它可以是整数、字符串、日期等类型。如果没有显式指定索引,Pandas 会自动创建一个默认的整数索引。 -
数据类型:
Series
可以容纳不同数据类型的元素,包括整数、浮点数、字符串等。
pandas.Series( data, 数据
index, 数据索引,不指定,从0开始
dtype, 数据类型,默认会自己判断
name, 设置名称。
copy) 拷贝数据,默认为 False。
实例:
import pandas as pd
a = [1, 2, 3]
myvar = pd.Series(a)
print(myvar)
Pandas-Series的一些方法
1.索引取值
import pandas as pd
a = [1, 2, 3]
myvar = pd.Series(a)
print(myvar[1]) #2
2.指定索引和按照索引取值
import pandas as pd
a = ["Google", "Runoob", "Wiki"]
myvar = pd.Series(a, index = ["x", "y", "z"])
print(myvar)
print(myvar[y]) #Runoob
x Google
y Runoob
z Wiki
dtype: object
3.利用字典创建Series --------key值为索引
import pandas as pd
s={0:"Google",1:"chorm"}
pd.Series(s)
4.字典中的一部分数据,只需要指定需要数据的索引即可
import pandas as pd
sites = {1: "Google", 2: "Runoob", 3: "Wiki"}
myvar = pd.Series(sites, index = [1, 2])
print(myvar)
基本操作:
import pandas as pd
s = {0: "Google", 1: "chorm", 2: "cjejiccnm", 3: "feofoemkfmm"}
ser = pd.Series(s)
print(ser[2]) #cjejiccnm
print(ser[1:4])
# 1 chorm
# 2 cjejiccnm
# 3 feofoemkfmm
# dtype: object
# 索引和值的对应关系
for index, value in ser.items():
print(f"Index: {index}, Value: {value}")
# Index: 0, Value: Google
# Index: 1, Value: chorm
# Index: 2, Value: cjejiccnm
# Index: 3, Value: feofoemkfmm
基本运算
import pandas as pd
s = {0: "Google", 1: "chorm", 2: "cjejiccnm", 3: "feofoemkfmm"}
ser = pd.Series(s)
print(ser*2)
# 0 GoogleGoogle
# 1 chormchorm
# 2 cjejiccnmcjejiccnm
# 3 feofoemkfmmfeofoemkfmm
# dtype: object
# 过滤
filtered_series = ser[ser > 2] # 选择大于2的元素
# 数学函数
import numpy as np
result = np.sqrt(ser) # 对每个元素取平方根
属性和方法:
# 获取索引
index = series_with_index.index
# 获取值数组
values = series_with_index.values
# 获取描述统计信息
stats = series_with_index.describe()
# 获取最大值和最小值的索引
max_index = series_with_index.idxmax()
min_index = series_with_index.idxmin()
注意事项:
Series
中的数据是有序的。- 可以将
Series
视为带有索引的一维数组。 - 索引可以是唯一的,但不是必须的。
- 数据可以是标量、列表、NumPy 数组等。