zoukankan      html  css  js  c++  java
  • pandas交叉表与透视表学习

    交叉表与透视表什么作用

    交叉表:交叉表用于计算一列数据对于另外一列数据的分组个数(用于统计分组频率的特殊透视表)

    pd.crosstab(value1, value2)

    透视表:透视表是将原有的DataFrame的列分别作为行索引和列索引,然后对指定的列应用聚集函数

    data.pivot_table()

    DataFrame.pivot_table([], index=[])

    案例分析

    数据准备

    data.head()

    data.index

    time = pd.to_datetime(data.index)
    time

    time.weekday

    data["week"] = time.weekday
    data.head()

    # 2、假如把p_change按照大小去分个类0为界限
    data['posi_neg'] = np.where(data['p_change'] > 0, 1, 0)
    data.head()

    
    
    # 通过交叉表找寻两列数据的关系
    count = pd.crosstab(data['week'], data['posi_neg'])
    count

    但是我们看到count只是每个星期日子的好坏天数,并没有得到比例,该怎么去做?

    • 对于每个星期一等的总天数求和,运用除法运算求出比例
    sum = count.sum(axis=1).astype(np.float32)
    sum

    ret = count.div(sum, axis=0)   #除法
    ret

     展示:

    ret.plot(kind="bar", stacked=True)
    plt.show()

    使用pivot_table(透视表)实现

    使用透视表,刚才的过程更加简单

    data.pivot_table(["p_n"], index="week")

  • 相关阅读:
    .NET 4.6.1 给cookie添加属性
    Blog目录
    1019 数字黑洞
    1018 锤子剪刀布
    1017 A除以B
    1016 部分A+B
    1015 德才论
    1014 福尔摩斯的约会
    1013 数素数
    1012 数字分类
  • 原文地址:https://www.cnblogs.com/a155-/p/14347129.html
Copyright © 2011-2022 走看看