使用Pytho做数据分析

Python数据探索-数据简单分析

数据挖掘与数据分析

数据挖掘发展史

数据挖掘是KDD的核心部分,它是指从数据集合中自动抽取隐藏再数据中的有用信息的非平凡过程,这些信息的表现形式有规则、概念、规律和模式等

数据挖掘的常用方法

分类

聚类

关联规则

智能推荐

时间序列

数据挖掘的通用流程

目标分析

数据抽取

数据探索

数据预处理

分析与建模

模型评价

数据校验

isnull用于判断是否为缺失值

pandas.DataFrame.isnull()

pandas.isnull(obj)

notnull用于判断是否为非缺失值

pandas.DataFrame.notnull()

pandas.notnull(obj)

count用于计算非缺失值

axis:这是一个可选参数,用于指定计算的轴向。默认值为0,意味着沿着列进行计算。如果设置为1,则沿着行进行计算。

level:这是一个可选参数,用于在具有多级索引的DataFrame中指定要在哪一级上进行计数。如果你的DataFrame没有多级索引,这个参数不会产生影响。

numeric_only:这也是一个可选参数,默认为False。当设置为True时,只对数值类型的列进行计数,忽略非数值类型的列(如字符串或布尔类型)。如果想对所有类型的列都进行计数,保持默认值即可。

pandas.DataFrame.count(axis=0,level=None,numeric_only=False)

异常值检测

异常值检测是数据分析中的一个重要环节,它有助于识别数据中的噪声或离群点,这些点可能会影响模型的训练结果或数据分析的准确性。以下是在Python中进行异常值检测的一些常用方法:

  1. Z-Score 方法
    Z-Score 是一种统计测量,表示一个值相对于平均值的距离,以标准差为单位。一般认为,Z-Score 绝对值大于3的数据点可以被视为异常值。

Python

1from scipy import stats

2import numpy as np

3import pandas as pd

4

5# 假设df是包含数值型数据的DataFrame

6z_scores = np.abs(stats.zscore(df))

7outliers = df(z_scores \> 3).any(axis=1)

  1. IQR(四分位距)方法

IQR 是第一四分位数(Q1)和第三四分位数(Q3)之差,用于衡量数据的离散程度。一般认为,低于 Q1 - 1.5IQR 或高于 Q3 + 1.5IQR 的值为异常值。

Python

1Q1 = df.quantile(0.25)

2Q3 = df.quantile(0.75)

3IQR = Q3 - Q1

4outliers = df\~((df \< (Q1 - 1.5 \* IQR)) \| (df \> (Q3 + 1.5 \* IQR))).any(axis=1)

注意这里的逻辑取反是为了找出非异常值,如果要直接筛选异常值,应去掉

percentile(a,q,axis)用于计算百分位数

a:接收 amay_like(类数组 )。表示输人数组或可以转换为数组的对象。无默认值。

q:接收浮点类型的 aray_like。表示要计算的百分位数或百分位数的序列,必须在 0~100之间(含0和100)。无默认值:

axis:接收 int 类型的值、imnt元组、None。表示计算百分位数的一个或多个的轴默认值为 None

import pandas as pd

假设我们有一个数据系列

data = 23, 67, 34, 89, 12, 45, 68, 72, 39, 53

将数据转换为pandas的Series或DataFrame

series = pd.Series(data)

计算75th百分位数

q75 = series.quantile(0.75)

print(f"75th Percentile: {q75}")

mean(axis,skipna)用于计算平均值

axis:接收 int 类型的值。表示所要应用的功能的轴,可选0和1。默认值为 None

skipna:接收 bool 类型的值。表示排除缺失值。默认值为 None

level:接收 int 类型的值或级别名称。表示标签所在级别。默认值为 None

data.mean()

std(axis,skipna,level,ddof)用于计算标准差

axis:接收 int 类型的值。表示所要应用的功能的轴,可选0和 1。默认值为 None

skipna:接收 bool类型的值。表示排除缺失值。默认值为 None

level:接收int类型的值或级别名称。表示标签所在级别。默认值为 None

ddof:接收 int 类型的值。表示 Delta 的自由度。默认值为1

data.std()

描述性统计分析

相关性分析

corr()函数的用法

import pandas as pd

假设df是一个包含两列数值数据的DataFrame

data = { 'Column1': 1, 2, 3, 4, 5, 'Column2': 2, 4, 6, 8, 10 }

df = pd.DataFrame(data)

计算'Column1'和'Column2'之间的相关系数

correlation = df'Column1'.corr(df'Column2')

print("Correlation between Column1 and Column2:", correlation)

cut()函数用法

cut()函数在Python的数据分析中是一个非常实用的工具,特别是在使用Pandas库时。这个函数主要用于将连续的变量(如数值型数据)分割成几个区间或"bins",从而将连续数据离散化。这对于数据分组、创建直方图或进行数据分箱等操作非常有用。

基本语法

pandas.cut(x, bins, right=True, labels=None, retbins=False, precision=3, include_lowest=False, duplicates='raise')

x:需要切割的数组或序列,通常是一列数值数据。

bins:分割区间(bins)的边界。可以是整数(表示想要的区间数量),或者一个具体的区间边界值的列表或数组。

right:布尔值,默认为True,表示区间是右闭合的(a, b))。如果设为False,则区间变为左闭合((a, b)。

labels:可选参数,用于指定每个区间的标签。如果给定,返回的Series或DataFrame将包含这些标签而不是区间表示。

retbins:布尔值,默认为False。如果为True,函数会同时返回区间边界(bins)。

precision:指定区间边界显示的小数点后位数。

include_lowest:布尔值,默认为False。若为True,则确保区间包含最小值,即使最小值等于区间的起始点。

duplicates:处理区间边界重复时的行为,默认为'raise',即当区间边界有重复时抛出错误。

#销售频数

bins=0,200,400,600,800

cate = pd.cut( data'销售额(元)', bins, right=False,

labels='低销量','中等销量','中高等销量','高等销量' )

data'销量区间'=cate

describe()函数用法

df.describe()

对于数值型列,describe()的输出通常如下:

count: 非空值的数量。

mean : 平均值。

std : 标准差。

min : 最小值。

25% : 第一四分位数(下四分位数)。

50% : 中位数(第二四分位数)。

75% : 第三四分位数(上四分位数)。

max : 最大值。

集中趋势度量

均值:df.mean()

中位数:df.median()

众数:df.mode()

方差:df.var()

偏度:df.skew()

峰度:df.kurt()

相关推荐
王小王-12319 小时前
基于B站的视频分析系统——面向美食视频内容生态的多源数据分析与可视化系统
数据分析·音视频·美食·视频分析·b站数据分析·b站弹幕分析
ATA888820 小时前
Chat2DB vs Navicat vs DBeaver:架构差异与技术选型深度对比
数据分析·数据库管理·智能问数
CAIE研习社21 小时前
大学生数据分析作品集,应该包含哪些内容?
人工智能·数据分析
m0_5474866621 小时前
《Python程序设计与数据分析》全套PPT课件
python·数据分析
STLearner1 天前
ICML 2026 | LLM×Graph论文总结[1]【图基础模型,文本属性图,多模态属性图,图对齐,图提示学习,关系深度学习
论文阅读·人工智能·python·深度学习·学习·机器学习·数据挖掘
m0_547486662 天前
《面向对象分析设计与建模》全套PPT课件
人工智能·数据挖掘·uml
qq_355357022 天前
SKC智能知识管理系统-设计分享 之 知识聚类图谱
机器学习·数据挖掘·聚类
ClickHouseDB2 天前
简化 Langfuse 的规模化应用
人工智能·数据挖掘
卷无止境2 天前
Python数据进阶专题:用声明式验证让数据管道告别"惊喜"
后端·python·数据分析
Jay_Franklin2 天前
Python 数据处理工作流:marimo、PyCharm 与数据存储
开发语言·数据仓库·ide·python·pycharm·数据分析·开源