的记忆: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')
相关推荐
Python之栈12 小时前
PandasAI:当数据分析遇上自然语言处理
人工智能·python·数据分析·pandas
zhuyixiangyyds21 小时前
day21和day22学习Pandas库
笔记·学习·pandas
冷月半明2 天前
《Pandas 性能优化:向量化操作 vs. Swifter 加速,谁才是大数据处理的救星?》
python·数据分析·pandas
慕丹2 天前
虫洞数观系列三 | 数据分析全链路实践:Pandas清洗统计 + Navicat可视化呈现
python·mysql·数据挖掘·数据分析·pandas
lzq6033 天前
【Python实战】用Pandas轻松实现Excel数据清洗与可视化
python·excel·pandas
啊阿狸不会拉杆5 天前
第十五章:Python的Pandas库详解及常见用法
开发语言·python·数据分析·pandas
夜松云5 天前
Python数据可视化与数据处理全解析:Matplotlib图形控制与Pandas高效数据分析实战
python·算法·信息可视化·pandas·matplotlib
蹦蹦跳跳真可爱5895 天前
Python----数据分析(足球运动员数据分析)
python·数据挖掘·数据分析·pandas·matplotlib
liuweidong08026 天前
【Pandas】pandas Series to_xarray
linux·运维·pandas
王有品7 天前
python之size,count的区别
python·机器学习·pandas