【Python数据分析专题】-数据探索分析

这篇博客详细介绍了Python数据分析中的数据探索方法,包括使用`query`进行查询,描述统计如均值、中位数、MAD和偏度、峰度的计算,以及各种分布的分析。此外,还涵盖了点估计、置信区间、概率分布、卡方检验、ANOVA、AB测试等统计概念。通过实例展示了如何进行数据分布函数的生成和抽样分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据探索

1. 查询

query

  • df.query(‘查询条件’)

    df.query('col1 == 某个值')
    df.query('col1 == [值1,值2]')
    

2. 统计分析

2.1 描述统计

2.1.1均值、中位数描述

se.mean(axis=1) # 求行的均值
se.median()
plt.vlines(se.mean(),ymin=0,ymax=3,linewidth=5) # 绘制均值垂直线
plt.vlines(se.median()ymin=0,ymax=3,linewidth=3,color='red') # 绘制红色中位数线

2.1.2 分布描述

  • .describe()

    df['col'].describe()
    
  • .quantile()

    df['col'].quantile([0.5,0.75]) # 返回中位数和第三分位数
    
  • df['col'].var() # 方差
    df['col'].std() # 标准差
    

2.1.3 MAD

  • MAD = median( |X_i - median(X)| )

  • abs_median_devs = abs(df['col'] - df['col'].median())
    abs_median_devs.median() * 1.4826
    

2.1.4 偏度、峰度

  • 偏度

    • 是统计数据分布偏斜方向和程度的度量
    • 是统计数据分布非对称程度的数字特征
    • 右偏:长尾巴在右边
    df['col'].skew() # 大于0-右偏
    
  • 峰度

    • 表征概率密度分布曲线在平均值出峰值高低的特征数
    • 峰度高-看起来很尖
    import scipy.stats as stats
    stats.kurtosis(数据集变量)
    

1 集中趋势

  • df['col'].mean() # 均值
    df['Age'].median() # 中位数
    df['Age'].describe() # 描述统计
    df['Age'].describe(percentiles=[0.5,0.75]) # 分位数求:中位数和第三分位数
    df['Age'].quantile(0.5) # 分位数
    df.mode() # 众数
    df['Age'].mode() # 众数
    

2 离中趋势

  • df['Age'].std() # 标准差
    df['Age'].var() # 方差
    df.sum() # 注意离散数据的求和
    

3 数据分布

  • df.skew() # 偏态系数
    df.kurt() # 峰度系数:这里设定正态分布的峰度为0
    
分布函数的生成
  • 分布函数的生成

    import scipy.stats as ss
    
  • 正态分布

    # 查看其性质:
    ss.norm.stats(moments='mvsk') # m:均值、v:方差、s:偏态系数、k:峰态系数
    
    # 生成正态分布集
    ss.norm.rvs(size=1000) # 1000个符合正态分布的数字
    
    ss.norm.pdf(x=) # 指定横坐标,返回纵坐标的值:分布函数在x上的值
    ss.norm.ppf(0.9) # 从负无穷大到 所求的值,其累积值为0.9
    ss.norm.cdf(2) # 从-无穷,到x=2,求其累计概率
    
  • 卡方分布

    ss.chi2
    
  • t分布

    ss.t
    
  • f分布

    ss.f
    

抽样

  • df.sample(n=10) # 抽取10个
    df.sample(frac=0.01) # 抽样1%
    df['col'].sample(n=10) # 抽样10个
    

2.2 点估计与置信区间

2.3 概率分布

2.4 检验

2.5 卡方检验

2.6 ANOVA

2.7 AB测试

2.8 态分布

按数据类型选分析方式

自变量x因变量Y检验方式
连续分类方差分析
分类连续方差分析
分类分类卡方检验
连续连续相关性分析

3. 估计

3.1 点估计

  • 样本对总体进行点估计
  • 有偏差
  1. 数值类型集

    • 点估计

      # 构建总体
      np.random.seed(2019)
      salary_1 = scipy.stats.poisson.rvs(mu = 2000, size = 10000)
      salary_2 = scipy.stats.poisson.rvs(mu = 3000, size = 15000)
      salary_all = np.concatenate((salary_1,salary_2))
      salary_all.mean()
      
      # 抽样(样本)
      sample_salary = np.random.choice(salary_all,size=500)
      sample_salary.mean() - salary_all.mean()
      
  2. 分类数据集

    • 点估计

      import random
      random.seed(2019)
      a = (['doctor']*10000 +\
           ['teacher']*25000 +\
           ['farmer']*50000 +\
           ['engineer']*25000 +\
           ['other']*25000)
      demo_sample = random.sample(a,1000)
      for b in set(a):
          print(b + '标题一:')
          print(demo_sample.count(a)/1000) # 每种职业在样本中的占比
          print(b + '标题二:')
          print(a.count(b)/135000) # 每种职业在总体中的占比
      

3.2 中心极限定理

  • sampling distribution符合正态分布

  • 重复采样2000次

    np.random.seed(2020)
    sample_point = []
    for x in range(2000):
        sample = np.random.choice(salary_all,size=500)
        sample_point.append(sample.mean())
        
    # 可视化
    pd.DataFrame(sample_point).plot(kind='density', # 概率密度图
                                    figsize=(9,9),
                                    xlim=(2000,3000)
                                   )
    # 总体 与 重复采样后均值 比较
    salary_all.mean() - np.array(sample_point).mean()
    

3.3 置信区间

  • 展现的是这个参数的真实值有一定概率落在测量结果周围的程度

  • z ∗ σ n z*\frac{\sigma}{\sqrt n} zn σ

  • z z z:关键值

  • σ \sigma σ :总体的标准差

  • n \sqrt n n :样本的开平方根

  • 
    

By 儒冠多误身 2019/04/21

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值