的记忆:pandas(实在会忘记,就看作是一个 Excel 表格,或者是 SQL 表,或者是字典的字典。)

pandas 是一个开源的 Python 数据分析库,它提供了快速、灵活和富有表现力的数据结构,旨在使"关系"或"标记"数据的"快速分析、清洗和转换"变得既简单又直观。pandas 非常适合于数据清洗和转换、数据分析和建模等任务。以下是 pandas 的基本概念和主要特征:

基本概念

  1. DataFrame
    • DataFrame 是 pandas 提供的一个二维的、大小可变的、可以存储多种类型数据的表格型数据结构。它既有行索引也有列索引,可以被看作是一个 Excel 表格,或者是 SQL 表,或者是字典的字典。
    • DataFrame 中的数据以行列的形式存储,其中行由索引标识,列由列名标识。
  2. Series
    • Series 是一个一维数组对象,能够保存任何数据类型(整数、字符串、浮点数、Python 对象等)。它有一个标签与之关联,可以看作是 DataFrame 的一列。

主要特征

  1. 灵活的数据结构
    • pandas 提供了 DataFrame 和 Series 两种灵活的数据结构,可以方便地处理标记数据和关系数据。
  2. 强大的数据操作能力
    • 提供了大量用于数据清洗、转换、筛选、分组、聚合等操作的函数和方法。
    • 支持布尔索引、标签索引、位置索引等多种索引方式。
  3. 集成数据缺失处理
    • pandas 提供了一套丰富的功能来处理含有缺失值的数据,如填充缺失值、删除含有缺失值的行等。
  4. 数据合并和连接
    • pandas 可以方便地将多个 DataFrame 或 Series 合并或连接在一起,支持多种合并策略(如内连接、外连接等)。
  5. 时间序列处理
    • pandas 提供了强大的时间序列处理功能,可以轻松地进行日期范围生成、日期偏移、时间频率转换等操作。
  6. 数据可视化集成
    • pandas 可以与 matplotlib、seaborn 等可视化库无缝集成,方便地将数据可视化。
  7. 高性能
    • pandas 的底层实现采用了 NumPy 库,因此具有高效的数值计算性能。
    • pandas 还提供了多种优化手段,如内存优化、计算优化等,确保在处理大规模数据时依然保持高性能。
  8. 易用性
    • pandas 提供了丰富的 API 和文档,使得用户能够轻松地学习和使用。
    • pandas 的语法直观易懂,与 Python 的风格保持一致,降低了学习成本。

通过结合以上这些特点,pandas 成为了数据分析师和数据科学家不可或缺的工具之一。


简单接触一些:

pd.concat()

这个函数用于将多个pandas对象(如DataFrame或Series)沿着一条特定的轴拼接起来。

python 复制代码
import pandas as pd  
  
# 创建两个简单的DataFrame  
df1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})  
df2 = pd.DataFrame({'A': [5, 6], 'B': [7, 8]})  
  
# 使用pd.concat按行拼接  
result = pd.concat([df1, df2])  
print(result)  
print("______________________________")
# 按列拼接  
result_col = pd.concat([df1, df2], axis=1)  
print(result_col)

pd.melt()

这个函数用于将DataFrame中的列转换为行格式,常用于数据重塑。

pd.get_dummies()

这个函数用于将分类变量转换为哑变量(dummy variables,或称为独热编码)。

DataFrame.groupby()

DataFrame的groupby方法用于根据一个或多个列对数据进行分组,并对每个组执行某些操作(如聚合)。

python 复制代码
df = pd.DataFrame({  
    'A': ['foo', 'foo', 'foo', 'bar', 'bar'],  
    'B': ['one', 'one', 'two', 'two', 'one'],  
    'C': ['small', 'large', 'large', 'small', 'small'],  
    'D': [1, 2, 2, 3, 3],  
    'E': [2, 4, 5, 5, 6]  
})  
  
# 按列'A'分组,并计算每组的'D'列的平均值  
grouped = df.groupby('A')['D'].mean()  
print(grouped)

DataFrame.merge()

DataFrame的merge方法用于根据一个或多个键将两个DataFrame合并在一起。

python 复制代码
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']})  
  
# 按'key'列进行内连接  
merged = left.merge(right, on='key')  
print(merged)

常用的函数和方法示例

数据导入与导出

pd.read_csv()

用于读取CSV文件并转换为DataFrame。

python 复制代码
df = pd.read_csv('data.csv')

DataFrame.to_csv()

python 复制代码
df.to_csv('output.csv', index=False)

数据查看与描述

DataFrame.head() 和 DataFrame.tail()

查看DataFrame的前几行或后几行

python 复制代码
# 查看前3行  
print(df.head(3))  
  
# 查看后2行  
print(df.tail(2))

DataFrame.info()

打印DataFrame的简要摘要信息,包括每列的非空值数量、数据类型等。

python 复制代码
df.info()

DataFrame.describe()

生成描述性统计信息,包括计数、均值、标准差、最小值、25%、50%、75%分位数和最大值,主要针对数值型列。

python 复制代码
df.describe()

数据选择与过滤

DataFrame.loc[] 和 DataFrame.iloc[]

基于标签或整数位置选择数据。

python 复制代码
# 使用标签选择数据  
print(df.loc[0:2, 'A':'B'])  
  
# 使用整数位置选择数据  
print(df.iloc[0:2, 0:2])

DataFrame.filter()

基于列标签选择列。

python 复制代码
filtered = df.filter(like='A', axis=1)

DataFrame.query()

使用查询字符串进行数据过滤。

python 复制代码
filtered = df.query('A > 1 & B < 4')
相关推荐
wxl7812271 天前
基于flask+pandas+csv的报表实现
python·flask·pandas
chaodaibing1 天前
pandas读取pymysql和解析excel的一系列问题(版本不匹配)
excel·pandas
aiweker3 天前
python数据分析(九):Pandas 分类数据(Categorical Data)处理
python·数据分析·pandas
TravelLight923 天前
Python pandas 向excel追加数据,不覆盖之前的数据
python·excel·pandas
liuweidong08024 天前
【Pandas】pandas DataFrame abs
pandas
liuweidong08025 天前
【Pandas】pandas DataFrame ewm
pandas
数据系的公考小白6 天前
2025五一杯数学建模C题代码分享
python·数学建模·pandas·五一杯
get lend gua7 天前
Pandas 的透视与逆透视
机器学习·数据挖掘·pandas
跟着杰哥学Python7 天前
一文读懂Python之pandas模块
开发语言·python·pandas
xiaohanbao097 天前
day16 numpy和shap深入理解
python·学习·机器学习·信息可视化·numpy·pandas