这篇教程pandas DataFrame.shift()函数的具体使用写得很实用,希望能帮到您。 pandas DataFrame.shift()函数可以把数据移动指定的位数 period参数指定移动的步幅,可以为正为负.axis指定移动的轴,1为行,0为列. eg: 有这样一个DataFrame数据:import pandas as pddata1 = 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 b0 0 91 1 82 2 73 3 64 4 55 5 46 6 37 7 28 8 19 9 0 如果想让 a和b的数据都往下移动一位: data2 = data1.shift(axis=0)print data2 a b0 NaN NaN1 0.0 9.02 1.0 8.03 2.0 7.04 3.0 6.05 4.0 5.06 5.0 4.07 6.0 3.08 7.0 2.09 8.0 1.0 如果是在行上往右移动一位: data3 = data1.shift(axis=1)print data3 a b0 NaN 0.01 NaN 1.02 NaN 2.03 NaN 3.04 NaN 4.05 NaN 5.06 NaN 6.07 NaN 7.08 NaN 8.09 NaN 9.0 如果想往上或者往左移动,可以指定(periods=-1): data4 = data1.shift(periods=-1, axis=0)print data4 a b0 1.0 8.01 2.0 7.02 3.0 6.03 4.0 5.04 5.0 4.05 6.0 3.06 7.0 2.07 8.0 1.08 9.0 0.09 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 EXITSn0 0.0 0.01 23.0 8.02 18.0 18.03 71.0 54.04 170.0 44.05 214.0 42.06 87.0 11.07 10.0 3.08 36.0 89.09 153.0 333.0 到此这篇关于pandas DataFrame.shift()函数的具体使用的文章就介绍到这了,更多相关pandas DataFrame.shift()内容请搜索51zixue.net以前的文章或继续浏览下面的相关文章希望大家以后多多支持51zixue.net! 教你怎么用python实现字符串转日期 pytorch--之halfTensor的使用详解 |