python之pandas模块

简介

Pandas 是一个功能强大的数据分析和处理库,提供了多种数据结构来处理和操作数据。

Pandas 是建立在 NumPy 之上的库,并且集成了 NumPy 的功能。Pandas 提供了高级的数据结构和数据操作工具,使得数据处理和分析更加方便和灵活。

Pandas 中的核心数据结构,如 Series 和 DataFrame,可以看作是对 NumPy 数组的扩展。它们提供了更多的功能和灵活性,使得数据处理更加直观和高效。

Pandas 提供了许多与数据处理和分析相关的功能,例如数据加载、数据清洗、数据筛选、聚合计算、数据合并、时间序列处理等。这些功能在处理和分析结构化数据时非常有用。

同时,Pandas 也支持直接使用 NumPy 数组进行计算和操作。您可以将 NumPy 数组转换为 Pandas 的数据结构,利用 Pandas 提供的丰富功能进行数据处理和分析。

总而言之,Pandas 是在 NumPy 的基础上构建的高级数据处理和分析库,它提供了更方便、更灵活的数据结构和操作工具,使得数据处理更加简化和高效。

数据类型

Series(序列)

Series 是一种一维标记数组,可以存储不同类型的数据,并且每个数据点都有与之相关联的标签(索引)。Series 可以看作是带有标签的单列数据,类似于字典或数据库中的一列。它是 Pandas 中最基本的数据结构。

DataFrame(数据帧)

DataFrame 是一个二维的表格数据结构,由多个 Series 组成,每个 Series 表示一列。DataFrame 可以看作是带有标签的多列数据,类似于数据库或电子表格中的表格。它是 Pandas 中最常用的数据结构,具有灵活的索引和多种数据操作功能。

Index(索引)

Index 是一种标签化的数组,它可以用作 Series 和 DataFrame 的行索引或列索引。Index 可以包含重复的标签,也可以是唯一的标签。它提供了快速和高效的数据访问和操作方式。

Panel(面板)

Panel 是一个三维的数据结构,可以看作是由多个 DataFrame 组成的数据集合。它在 Pandas 中的使用相对较少,通常用于处理涉及到三个维度的数据分析和操作。

此外,Pandas 还提供了其他一些较少使用的数据结构,如时间序列数据结构 TimeSeries、分类数据结构 Categorical 等,它们在特定的数据分析场景中可以发挥重要的作用。

这些数据结构使得 Pandas 成为一个强大的工具,可以方便地加载、处理、分析和操作各种类型的数据。您可以根据具体的需求选择合适的数据结构来处理您的数据。

内置的算法模型

pandas 作为一个强大的数据分析库,除了提供丰富的数据操作功能外,还内置了一些常用的算法模型,可以帮助我们更方便地进行数据分析和建模。以下是 pandas 内置的一些常见的算法模型:

线性回归模型

pandas.DataFrame.corr(): 计算特征之间的相关系数。
pandas.DataFrame.cov(): 计算特征之间的协方差矩阵。
pandas.DataFrame.linalg.lstsq(): 使用最小二乘法进行线性回归。

时间序列分析

pandas.DataFrame.rolling(): 滚动窗口计算。
pandas.DataFrame.expanding(): 累积窗口计算。
pandas.DataFrame.ewm(): 指数加权移动平均。
pandas.DataFrame.diff(): 计算时间序列的差分。
pandas.DataFrame.pct_change(): 计算时间序列的百分比变化。

分类模型

pandas.get_dummies(): 对类别特征进行one-hot编码。
pandas.DataFrame.groupby().size(): 进行分组统计。
pandas.DataFrame.apply(): 对数据应用自定义函数。

聚类算法

pandas.DataFrame.cluster.hierarchy.linkage(): 层次聚类算法。
pandas.DataFrame.cluster.K_means(): K-means聚类算法。

缺失值处理

pandas.DataFrame.fillna(): 填充缺失值。
pandas.DataFrame.interpolate(): 插值计算缺失值。

异常值检测

pandas.DataFrame.describe(): 计算数据的统计特征。
pandas.DataFrame.mad(): 计算绝对中位数偏差。
pandas.DataFrame.outlier_detection(): 使用 Z-score 检测异常值。

常见的处理流程

数据导入

使用 pd.read_csv()、pd.read_excel()、pd.read_json() 等函数读取数据文件。
对于数据源是数据库的情况,可以使用 pd.read_sql() 函数从数据库中读取数据。

数据探索

使用 df.head()、df.tail() 查看数据的前几行和后几行。
使用 df.shape、df.dtypes 了解数据的基本信息,如行列数、数据类型。
使用 df.describe() 查看数值型特征的统计特征,如平均值、标准差、最大最小值等。
使用 df.info() 查看数据的内存使用情况和缺失值情况。

数据清洗

处理缺失值:使用 df.fillna() 填充缺失值,或者使用 df.dropna() 删除含有缺失值的行/列。
处理异常值:可以使用统计学方法如 Z-score、IQR 等识别和处理异常值。
处理数据类型:使用 df.astype() 转换数据类型,如将字符型转换为数值型。
处理重复数据:使用 df.drop_duplicates() 删除重复行。

特征工程

创建新特征:使用 df.apply()、df.map()、df.replace() 等函数创建新的特征列。
编码类别特征:使用 pd.get_dummies() 进行one-hot编码。
处理时间序列特征:使用 pd.to_datetime() 转换时间类型,并提取年月日等时间特征。

数据分析

进行描述性统计分析:使用 df.describe()、df.corr()、df.cov() 等函数。
进行可视化分析:利用 Matplotlib、Seaborn 等库绘制各种图表。
进行分组聚合分析:使用 df.groupby() 进行数据分组并计算聚合指标。

模型构建

将数据拆分为训练集和测试集。
调用 scikit-learn 等第三方机器学习库构建模型。
评估模型性能,并进行模型调优。

code实例

# 1. 数据导入
import pandas as pd
df = pd.read_csv('housing.csv')

# 2. 数据探索
print(df.head())
print(df.shape)
print(df.dtypes)
print(df.describe())
print(df.info())

# 3. 数据清洗
# 处理缺失值
df = df.fillna(df.mean())

# 处理异常值
from scipy.stats import zscore
df['z_score'] = abs(zscore(df['price']))
df = df[df['z_score'] < 3]

# 4. 特征工程
# 创建新特征
df['living_area_per_person'] = df['living_area'] / df['num_bedrooms']

# 编码类别特征
df = pd.get_dummies(df, columns=['neighbourhood', 'house_type'])

# 处理时间序列特征
df['date'] = pd.to_datetime(df['date'])
df['year'] = df['date'].dt.year
df['month'] = df['date'].dt.month

# 5. 数据分析
import matplotlib.pyplot as plt
import seaborn as sns
sns.pairplot(df)
plt.show()

# 6. 模型构建
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split

X = df[['living_area', 'num_bedrooms', 'year', 'month']]
y = df['price']

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

model = LinearRegression()
model.fit(X_train, y_train)

print('Test R-squared:', model.score(X_test, y_test))

数据可视化

要在 Pandas 中进行可视化,可以使用 Matplotlib 或 Seaborn 等库来绘制图表。这些库与 Pandas 无缝集成,可以方便地对 DataFrame 进行可视化。

简单示例

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

# 创建一个包含随机数据的 DataFrame
np.random.seed(1)
data = np.random.randn(100, 3)
df = pd.DataFrame(data, columns=['A', 'B', 'C'])

# 绘制折线图
df.plot()
plt.title('Line Plot')
plt.show()

# 绘制散点图
df.plot(kind='scatter', x='A', y='B')
plt.title('Scatter Plot')
plt.show()

# 绘制柱状图
df.plot(kind='bar', stacked=True)
plt.title('Bar Plot')
plt.show()

# 绘制箱线图
df.plot(kind='box')
plt.title('Box Plot')
plt.show()

  • 16
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
pandas是一个基于NumPy的Python数据分析库,它可以快速便捷地处理大量数据。 安装pandas模块: 在命令行输入以下命令: ``` pip install pandas ``` 导入pandas模块: 在Python代码中,可以使用以下语句导入pandas模块: ``` import pandas as pd ``` pandas主要的数据结构: pandas主要有两种数据结构,分别是Series和DataFrame。 Series是一种类似于一维数组的对象,它由一组数据以及一组与之相关的标签(即索引)组成。 DataFrame是一个表格型的数据结构,它包含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔值等),DataFrame既有行索引也有列索引,可以看做是由Series组成的字典。 pandas常用函数: pandas提供了很多函数,下面列出一些常用的函数: - read_csv():读取CSV文件; - to_csv():将数据写入CSV文件; - head():查看前n行数据; - tail():查看后n行数据; - shape():查看数据的形状; - describe():描述数据的基本统计信息; - info():查看数据的基本信息; - groupby():按照指定的列分组; - merge():根据指定的列合并两个DataFrame; - apply():对指定的列进行函数操作; - sort_values():按照指定的列进行排序; - drop():删除指定的行或列; - fillna():填充缺失数据; - replace():替换指定的数据; - isnull():判断数据是否为缺失值; - notnull():判断数据是否不为缺失值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值