• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

python 搞代码 4年前 (2022-01-08) 39次浏览 已收录 0个评论

本文主要介绍了pandas DataFrame.shift()函数的使用,pandas DataFrame.shift()函数可以把数据移动指定的位数,有需要了解pandas DataFrame.shift()用法的朋友可以参考一下

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

period参数指定移动的步幅,可以为正为负.axis指定移来源gaodai#ma#com搞*代#码网动的轴,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()函数的具体使用的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:pandas DataFrame.shift()函数的具体使用

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址