• Pandas 基础(10)


    Pivot allows you to transform or reshape data.
    Pivot 可以帮助我们改变数据的格式, 下面两个例子可以作为参考:

    下面来看下具体实现, 首先引入一个 csv 文件(已上传)

    df = pd.read_csv('/Users/rachel/Sites/pandas/py/pandas/10_pivot/weather.csv')
    

    输出:

    格式转换, 设置 'date' 为索引列, 也就让'date' 做每一行的输出依据, 然后设置'city' 为每一列输出的依据:

    df.pivot(index='date', columns='city')
    

    还可以给出第三个参数, 指定输出的内容:

    df.pivot(index='date', columns='city', values='humidity')
    

    下面来看下 pivot table:
    pivot table is used to summarize and aggregate data inside dataframe.
    pivot table 可以用来很好地总结整合数据. 下面通过一个例子来看一下:

    df = pd.read_csv('/Users/rachel/Sites/pandas/py/pandas/10_pivot/weather2.csv')
    

    输出:

    从这个输出可以看出目前的数据结构很乱, 这时, 我们就可以用 pivot table 来做整合:

    df.pivot_table(index='city', columns='date')
    


    从结果可以看出, 这样整合之后, 取的是每天每个城市每个事件的平均值.
    对于 pivot_table() 函数, 我们还可以通过第三个参数 'aggfun' 来做很多的变化, 下面分别来看下:

    取和:

    df.pivot_table(index='city', columns='date', aggfunc='sum')
    

    取数据的条数:

    df.pivot_table(index='city', columns='date', aggfunc='count')
    

    求差异:

    df.pivot_table(index='city', columns='date', aggfunc='diff')
    

    求平均值, 其实如果不加这个参数, 默认也是求平均值:

    df.pivot_table(index='city', columns='date', aggfunc='mean')
    

    横向纵向分别求和的平均值:

    df.pivot_table(index='city', columns='date', margins=True)
    

    以上, 大家可以实际运行一下, 看看输出的结果.

    下面介绍最后一个点, 对数据进行分组整理:
    首先, 还是先引入一个文件做例子:

    df = pd.read_csv('/Users/rachel/Sites/pandas/py/pandas/10_pivot/weather3.csv')
    

    输出:

    然后, 我们想实现的是把数据按照月份分组:

    df.pivot_table(index=pd.Grouper(freq='M', key='date'), columns='city')
    

    但是按照上面的代码运行, 会报错, 提示 'date' 列不是时间格式, 所以需要先把'date' 列的格式改成时间: 

    df['date'] = pd.to_datetime(df['date'])
    

    最后输出结果:

    以上就是关于 pivot 的常用方法, enjoy~~~

  • 相关阅读:
    HDU 1873 看病要排队(结构体+优先队列)
    优先队列
    栈和队列
    Light OJ 1214 Large Division (大数取模)
    LightOJ 1078 Integer Divisibility (同余定理)
    51nod 1513-3的幂的和(费马小定理+快速幂)
    51nod 1256 乘法逆元(扩展欧几里得)
    格式测试
    点Point 圆Circle 圆柱Cylinder的继承与派生
    JUC 并发编程--04 常用的辅助类CountDownLatch , CyclicBarrier , Semaphore , 读写锁 , 阻塞队列,CompletableFuture(异步回调)
  • 原文地址:https://www.cnblogs.com/rachelross/p/10429570.html
Copyright © 2020-2023  润新知