• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    pandas DataFrame.shift()函数的具体使用

    pandas DataFrame.shift()函数可以把数据移动指定的位数

    period参数指定移动的步幅,可以为正为负.axis指定移动的轴,1为行,0为列.

    eg: 有这样一个DataFrame数据:

    import pandas as pd
    data1 = pd.DataFrame({
        'a': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
        'b': [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
    })
    print data1
    
       a  b
    0  0  9
    1  1  8
    2  2  7
    3  3  6
    4  4  5
    5  5  4
    6  6  3
    7  7  2
    8  8  1
    9  9  0
    
    

    如果想让 a和b的数据都往下移动一位:

    data2 = data1.shift(axis=0)
    print data2
    
         a    b
    0  NaN  NaN
    1  0.0  9.0
    2  1.0  8.0
    3  2.0  7.0
    4  3.0  6.0
    5  4.0  5.0
    6  5.0  4.0
    7  6.0  3.0
    8  7.0  2.0
    9  8.0  1.0
    
    

    如果是在行上往右移动一位:

    data3 = data1.shift(axis=1)
    print data3
    
        a    b
    0 NaN  0.0
    1 NaN  1.0
    2 NaN  2.0
    3 NaN  3.0
    4 NaN  4.0
    5 NaN  5.0
    6 NaN  6.0
    7 NaN  7.0
    8 NaN  8.0
    9 NaN  9.0
    
    

    如果想往上或者往左移动,可以指定(periods=-1):

    data4 = data1.shift(periods=-1, axis=0)
    print data4
    
         a    b
    0  1.0  8.0
    1  2.0  7.0
    2  3.0  6.0
    3  4.0  5.0
    4  5.0  4.0
    5  6.0  3.0
    6  7.0  2.0
    7  8.0  1.0
    8  9.0  0.0
    9  NaN  NaN
    
    

    一个例子:

    这里有一组某车站各个小时的总进站人数和总出站人数的数据:

    entries_and_exits = pd.DataFrame({
        'ENTRIESn': [3144312, 3144335, 3144353, 3144424, 3144594,
                     3144808, 3144895, 3144905, 3144941, 3145094],
        'EXITSn': [1088151, 1088159, 1088177, 1088231, 1088275,
                   1088317, 1088328, 1088331, 1088420, 1088753]
    })
    

    要求计算每个小时该车站进出站人数

    思路: 把第n+1小时的总人数-第n小时的总人数,就是这个小时里的进出站人数

    entries_and_exits_hourly = entries_and_exits - entries_and_exits.shift(axis=0)print(entries_and_exits_hourly.fillna(0))   #最后用0来填补NaN
    
       ENTRIESn  EXITSn
    0       0.0     0.0
    1      23.0     8.0
    2      18.0    18.0
    3      71.0    54.0
    4     170.0    44.0
    5     214.0    42.0
    6      87.0    11.0
    7      10.0     3.0
    8      36.0    89.0
    9     153.0   333.0
    
    

    到此这篇关于pandas DataFrame.shift()函数的具体使用的文章就介绍到这了,更多相关pandas DataFrame.shift()内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • pandas中DataFrame检测重复值的实现
    • pandas取dataframe特定行列的实现方法
    • 利用python Pandas实现批量拆分Excel与合并Excel
    • Pandas DataFrame转换为字典的方法
    • 解决python3安装pandas出错的问题
    • Pandas爆炸函数的使用技巧
    • Pandas||过滤缺失数据||pd.dropna()函数的用法说明
    • 使用pandas或numpy处理数据中的空值(np.isnan()/pd.isnull())
    • 教你使用Pandas直接核算Excel中的快递费用
    • 教你漂亮打印Pandas DataFrames和Series
    上一篇:教你怎么用python实现字符串转日期
    下一篇:pytorch--之halfTensor的使用详解
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    pandas DataFrame.shift()函数的具体使用 pandas,DataFrame.shift,函数,