Pandas库详细介绍

Pandas 是 Python 中一个强大的数据处理和分析库,它提供了快速、灵活的数据结构和数据分析工具,广泛应用于数据科学、数据分析、金融建模等领域。以下是 Pandas 库的一些主要功能和用法介绍

1. 数据结构

Pandas 主要提供了两种数据结构:SeriesDataFrame

1.1 Series

Series 是一种类似于一维数组的对象,但它可以存储任意数据类型,包括整数、浮点数、字符串等,并且每个数据都有一个与之相关的标签(即索引)。

import pandas as pd

# 创建一个 Series
s = pd.Series([1, 3, 5, 7, 9], index=['a', 'b', 'c', 'd', 'e'])
print(s)

输出:

a    1
b    3
c    5
d    7
e    9
dtype: int64

1.2 DataFrame

DataFrame 是一个二维的表格型数据结构,可以看作是由多个 Series 组成的集合。每一列是一个 Series,可以存储不同类型的数据。DataFrame由行索引和列标签组成,每个单元格都可以通过行索引和列标签进行访问。

# 创建一个 DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'],
        'Age': [25, 30, 35],
        'Salary': [50000, 60000, 70000]}
df = pd.DataFrame(data)
print(df)

输出:

      Name  Age  Salary
0    Alice   25   50000
1      Bob   30   60000
2  Charlie   35   70000

2. 数据读取与保存

Pandas 可以方便地从多种数据格式中读取数据,并将数据保存到各种格式文件中。

2.1 读取数据

  • 从 CSV 文件读取数据:
df = pd.read_csv('data.csv')
  • 从 Excel 文件读取数据:
df = pd.read_excel('data.xlsx')
  • 从 SQL 数据库读取数据:
import sqlite3
conn = sqlite3.connect('database.db')
df = pd.read_sql_query("SELECT * FROM table_name", conn)

2.2 保存数据

  • 保存为 CSV 文件:
df.to_csv('output.csv', index=False)
  • 保存为 Excel 文件:
df.to_excel('output.xlsx', index=False)

3. 数据操作

Pandas 提供了丰富的函数和方法来操作 DataFrame 和 Series。

3.1 选择与过滤

  • 选择列:
df['Name']  # 返回 Series
df[['Name', 'Salary']]  # 返回 DataFrame
  • 选择行(基于标签):
df.loc[0]  # 根据行标签选择
  • 选择行(基于位置):
df.iloc[0]  # 根据行位置选择
  • 基于条件过滤:
df[df['Age'] > 30]

3.2 数据清洗

  • 处理缺失值:
df.dropna()  # 删除包含缺失值的行
df.fillna(0)  # 将缺失值替换为 0
  • 删除重复值
df.drop_duplicates()

3.3 数据聚合与分组

Pandas具有强大的数据统计和聚合功能,可以计算数据的均值、中位数、方差等统计量,并按指定条件进行数据分组与汇总。

  • 数据分组:
grouped = df.groupby('Age').mean()
  • 数据聚合:
df['Salary'].sum()  # 总和
df['Salary'].mean()  # 平均值
df['Salary'].count()  # 计数

4. 数据分析

Pandas 提供了许多方便的数据分析方法。

4.1 描述性统计

df.describe()  # 返回数值型数据的统计摘要

4.2 相关性分析

df.corr()  # 计算列之间的相关系数

5. 数据可视化

Pandas 可以与 Matplotlib 紧密结合,进行数据的可视化。

import matplotlib.pyplot as plt

df['Age'].plot(kind='hist')  # 绘制直方图
plt.show()

6. 时间序列分析

Pandas 具有强大的时间序列处理能力,内置了对时间序列数据的支持,提供了时间索引、频率转换、移动窗口统计等功能,适用于金融数据、传感器数据等领域的分析。

date_range = pd.date_range(start='2020-01-01', periods=6, freq='D')	# 时间索引
df = pd.DataFrame({'Values': [1, 3, 2, 5, 6, 7]}, index=date_range)
# 滚动窗口
df.rolling(window=3).mean()

7. 高级数据操作

  • 透视表:
df.pivot_table(values='Salary', index='Age', columns='Name', aggfunc='sum')
  • 数据合并:Pandas支持数据表的合并与连接,可以基于某个键(Key)或索引将两个或多个DataFrame合并。
    pd.merge() 是基于一个或多个键列来合并两个DataFrame,类似SQL中的JOIN操作,结果是根据键列对齐的数据。
    pd.concat() 是沿指定的轴(行或列)直接拼接多个DataFrame或Series对象,不涉及键列的对齐,适用于简单的表格拼接操作。
import pandas as pd

df1 = pd.DataFrame({
    'key': ['A', 'B', 'C'],
    'value1': [1, 2, 3]
})

df2 = pd.DataFrame({
    'key': ['B', 'C', 'D'],
    'value2': [4, 5, 6]
})

merged_df = pd.merge(df1, df2, on='key', how='inner')
print(merged_df)

输出:

  key  value1  value2
0   B       2       4
1   C       3       5

此例子中,基于key列进行了内连接,仅保留了两张表中key列相同的行。

import pandas as pd

df1 = pd.DataFrame({
    'key': ['A', 'B', 'C'],
    'value1': [1, 2, 3]
})

df2 = pd.DataFrame({
    'key': ['D', 'E', 'F'],
    'value2': [4, 5, 6]
})

concatenated_df = pd.concat([df1, df2], axis=0)
print(concatenated_df)

输出:

  key  value1  value2
0   A     1.0     NaN
1   B     2.0     NaN
2   C     3.0     NaN
0   D     NaN     4.0
1   E     NaN     5.0
2   F     NaN     6.0

此例子中,沿行轴(axis=0)将两个DataFrame拼接在一起,没有重叠的列则填充为NaN。

8. 小结

Pandas 是一个功能强大且灵活的数据分析工具,可以高效地处理结构化数据。通过掌握 Pandas 的基本用法,你可以轻松地进行数据读取、处理、分析和可视化,从而更好地理解和利用数据。

  • 15
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值