Pandas shift函数,Pandas shift()参数详解及示例(22)

作者 : 慕源网 本文共2899个字,预计阅读时间需要8分钟 发布时间: 2021-12-2 共438人阅读

Pandas shift函数,Pandas shift()参数详解及示例(22)

Pandas shift() 介绍

Pandas shift() 也称为 Pandas Dataframe.shift() 函数以任意时间频率按所需周期数移动列表。

本文是Python Pandas教程系列的一部分,您可以点击Python Pandas使用教程查看所有。

语法和参数:

Dataframe.shift(periods=0,frequency=none,axis=0)
参数: periodsint

要转换的周期数。可以是正数或负数。

freq DateOffsettseries.offsets

timedelta或str(可选)

tseries模块或时间规则使用的偏移量(例如 ‘EOM’)。

如果指定了freq,则索引值会移位,但数据不会重新对齐。

也就是说,如果您想在移位时扩展索引并保留原始数据,

请使用freq。如果将freq指定为“infer”

则将从索引的freqinferred_freq属性推断出来。

如果这些属性都不存在,则会引发ValueError

axis{0 或 ‘index’, 1 或 ‘columns’, None},

默认为 None

转变(Shift)方向。

fill_valueobject, 可选

用于新引入的缺失值的标量值。默认值取决于selfdtype 。

对于数字数据,np.nan使用。对于日期时间,

时间增量或期间数据等NaT。对于扩展dtype

self.dtype.na_value使用。

在1.1.0版中更改。用于新引入的缺失值的标量值。

默认值取决于selfdtype 。对于数字数据,

np.nan使用。对于日期时间,时间增量或期间数据等NaT

对于扩展dtypeself.dtype.na_value使用。

在1.1.0版中更改。

返回值: DataFrame

输入对象的副本,已移位。

Pandas shift() 函数如何工作?

下面给出了通过各种示例显示 Pandas shift() 函数的工作原理:

示例#1

使用 Pandas Dataframe shift() 函数将行轴正向移动 2 个周期。

代码:

import pandas as pd
ind = pd.date_range('1 / 1 / 2010', periods = 5, frequency ='12H')
df = pd.DataFrame({"S":[3, 4, 5, 6, 7],
"P":[20, 30, 40, 50, 60],
"A":[12, 23, 34, 45, 56],
"N":[17, 29, 41, 53, 8]},
index = ind)
df.shift(2, axis = 0)
print(df.shift(2, axis = 0))

输出:

Pandas shift函数,Pandas shift()参数详解及示例(22)

解释:

  • 在上面的程序中,我们首先将 Pandas 作为 pd 导入,然后我们创建一个包含行和列值的数据框。稍后我们初始化日期、月份和年份,并初始化轴的时间段和频率。我们将时间频率设为间隔 12 小时,并且我们在连续周期内生成 5 个索引值。
  • 现在我们使用 shift() 函数将轴移动到正轴上的 2 个周期,因此默认情况下使用此命令将轴指定为 0。因此,代码考虑使用 shift() 函数将轴移动 2 个周期,从而产生上述输出。

示例#2

使用 shift() 函数将数据帧的行轴向负方向移动 2 个周期。

代码:

import pandas as pd
ind = pd.date_range('1 / 1 / 2010', periods = 5, frequency ='12H')
df = pd.DataFrame({"S":[3, 4, 5, 6, 7],
"P":[20, 30, 40, 50, 60],
"A":[12, 23, 34, 45, 56],
"N":[17, 29, 41, 53, 8]},
index = ind)
df.shift(-2, axis = 0)
print(df.shift(-2, axis = 0))

输出:

Pandas shift函数,Pandas shift()参数详解及示例(22)

解释:

  • 在上面的程序中,与前面的程序类似,我们将 pandas 函数导入为 pd 并定义数据帧中的行并将其分配给名为 df 的变量。现在,与之前的程序类似,我们考虑 12 小时的时间间隔并将这个时间设置为频率。在数据框中生成 5 个索引值使代码更加清晰,我们将其分配给 period 变量参数,从而说明必须在 12 小时内生成 5 次日期。
  • 在这一步之后,下一步是将索引分配给我们的数据帧并将其命名为 ind。现在在这个程序中,我们使用 shift() 函数将平移轴移动到 x 轴负方向上的 2 个周期,轴默认设置为 0,因此生成的输出如上所示。

示例 #3

在 Pandas 数据框中使用 shift() 函数将列轴移到正方向。

代码:

import pandas as pd
ind = pd.date_range('1 / 1 / 2010', periods = 5, frequency ='12H')
df = pd.DataFrame({"S":[3, 4, 5, 6, 7],
"P":[20, 30, 40, 50, 60],
"A":[12, 23, 34, 45, 56],
"N":[17, 29, 41, 53, 8]},
index = ind)
df.shift(2, axis = 1)
print(df.shift(2, axis = 1))

输出:

Pandas shift函数,Pandas shift()参数详解及示例(22)

解释:

  • 在上面的程序中,我们首先将 Pandas 作为 pd 导入,然后定义数据框,而不是行索引值,您将定义所有列索引值。然后我们将时间频率定义为 12 小时间隔并将其定义为参数频率。除了时间频率,我们还定义了 5 个索引值并将其分配给 period 参数,以便以 12 小时的时间频率以 5 个周期生成日期和时间。
  • 现在我们定义索引值并将其分配给参数 ind。现在在 shift() 操作中,我们命令代码在列轴的正方向上移动 2 个周期,因此在输出中,前 2 列生成为 NaN,因为我们在正方向上移动了轴。

示例 #4

在 Pandas 数据框中使用 shift() 函数将列轴向负方向移动。

代码:

import pandas as pd
ind = pd.date_range('1 / 1 / 2010', periods = 5, frequency ='12H')
df = pd.DataFrame({"S":[3, 4, 5, 6, 7],
"P":[20, 30, 40, 50, 60],
"A":[12, 23, 34, 45, 56],
"N":[17, 29, 41, 53, 8]},
index = ind)
df.shift(-2, axis = 1)
print(df.shift(-2, axis = 1))

输出:

Pandas shift函数,Pandas shift()参数详解及示例(22)

解释:

  • 在上面的程序中,我们首先将 pandas 作为 pd 导入,然后表征数据帧,而不是 rowindex 值,您将表征所有 columnindex 值。在这一点上,我们将时间重复表征为 12 小时拉伸,并将其表征为参数时间频率。除了时间频率,我们同样表征 5 个记录尊并将其指定给周期参数,目标是日期和时间在 12 小时的每个周期重复的 5 次中产生。
  • 目前,我们描述了索引值并将其指定为参数 ind。目前在 shift() 活动中,我们命令代码在列中心以负方式移动 2 个周期,这样在产量中,最后 2 列作为 NaN 产生,因为我们以负方式移动枢轴。

结论

因此,我们看到在 Pandas Dataframe shift() 函数中,我们将特定数据帧的行和列的轴沿正方向和负方向移动。需要注意的是Pandas shift函数,当我们想要实现这个功能时,分配和定义时间频率和周期数是非常关键的。

 


慕源网 » Pandas shift函数,Pandas shift()参数详解及示例(22)

常见问题FAQ

程序仅供学习研究,请勿用于非法用途,不得违反国家法律,否则后果自负,一切法律责任与本站无关。
请仔细阅读以上条款再购买,拍下即代表同意条款并遵守约定,谢谢大家支持理解!

发表评论

开通VIP 享更多特权,建议使用QQ登录