使用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()

相关推荐
2601_962966641 小时前
会计岗位进阶指南:8 张国家认可证书阶梯解析
大数据·数据分析
CNSSIRD数据库3 小时前
中国创新型中小企业研究数据库2022-2026
大数据·数据库·数据分析·论文笔记
编程风暴3 小时前
3类人群的数据分析实习类型选择+4条选错红线
java·前端·数据分析
编程风暴4 小时前
数据分析实习投递渠道实操模板:回复率对比+匹配度自检表+case-by-case机制
大数据·数据挖掘·数据分析
Patrick在香港5 小时前
Python依赖管理从踩坑到选型:pip/poetry/uv四种方案全面实测
开发语言·python·数据分析·scikit-learn·ai编程·pip·uv
lkx097885 小时前
01-数据分析入门-Pandas实战
数据挖掘·数据分析·pandas
临床数据科学和人工智能兴趣组5 小时前
R Markdown 如何写
人工智能·机器学习·数据分析·r语言·r语言-4.2.1
大数据魔法师19 小时前
【最全详解】DuckDB Python 全套 API 语法、参数与实战用法(零基础全覆盖)
python·数据分析
世人万千丶21 小时前
鸿蒙Crash高级捕获与异常监控:全局异常兜底/崩溃栈解析/符号表还原/智能聚类/闭环修复
学习·机器学习·华为·数据挖掘·harmonyos·鸿蒙·聚类
大数据魔法师1 天前
Python 网络请求库 curl_cffi:从入门到实战,如何规避网站指纹检测
python·数据分析