您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:pandas DataFrame.shift()函数的具体使用

51自学网 2021-10-30 22:38:01
  python
这篇教程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的使用详解
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。