迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

Pandas DataFrame DataFrame.shift() 函数

作者:迹忆客 最近更新:2024/04/24 浏览次数:

Pandas DataFrame.shift 方法用于将 DataFrame 的索引按指定的周期数移位,时间频率可选。


pandas.DataFrame.shift() 语法

DataFrame.shift(periods=1, freq=None, axis=0, fill_value=None)

参数

periods 整数。决定移动索引的周期数,可以是负数,也可以是正数
freq DateOffsettseries.offsetstimedeltastr。可选参数,用于在不调整数据的情况下移动索引值
axis 沿着行(axis=0)或列(axis=1)移动
fill_value 用于新引入的缺失值的标量值

返回值

它返回一个带有移位索引值的 DataFrame 对象。


示例代码:DataFrame.shift() 函数沿行移动

import pandas as pd

df = pd.DataFrame({'X': [1, 2, 3,],
                   'Y': [4, 1, 8]})
print("Original DataFrame:")
print(df)

shifted_df=df.shift(periods=1)
print("Shifted DataFrame")
print(shifted_df)

输出:

Original DataFrame:
   X  Y
0  1  4
1  2  1
2  3  8
Shifted DataFrame
     X    Y
0  NaN  NaN
1  1.0  4.0
2  2.0  1.0

这里,我们将 periods 的值设置为 1,这将使 DataFrame 的行从顶部向底部移动 1 个单位。

在向底部移动的同时,最上面的行成为空缺,默认由 NaN 值填充。

如果我们想将行从底部向顶部移动,我们可以将 periods 参数设置为负值。

import pandas as pd

df = pd.DataFrame({'X': [1, 2, 3,],
                   'Y': [4, 1, 8]})
print("Original DataFrame:")
print(df)

shifted_df=df.shift(periods=-2)
print("Shifted DataFrame")
print(shifted_df)

输出:

Original DataFrame:
   X  Y
0  1  4
1  2  1
2  3  8
Shifted DataFrame
     X    Y
0  3.0  8.0
1  NaN  NaN
2  NaN  NaN

它将行从底部向顶部移动,周期为 2


示例代码:DataFrame.shift() 函数沿列移动

如果我们想移动沿列轴移动,我们在 shift() 方法中设置 axis=1

import pandas as pd

df = pd.DataFrame({'X': [1, 2, 3,],
                   'Y': [4, 1, 8]})
print("Original DataFrame:")
print(df)
shifted_df=df.shift(periods=1,axis=1)
print("Shifted DataFrame")
print(shifted_df)

输出:

Original DataFrame:
   X  Y
0  1  4
1  2  1
2  3  8
Shifted DataFrame
    X    Y
0 NaN  1.0
1 NaN  2.0
2 NaN  3.0

在这里,我们将 periods 的值设置为 1,这将使 DataFrame 的列轴从左向右移动 1 个单位。

如果我们想将列轴从右向左移动,我们为 periods 参数设置一个负值。

import pandas as pd

df = pd.DataFrame({'X': [1, 2, 3,],
                   'Y': [4, 1, 8]})
print("Original DataFrame:")
print(df)

shifted_df=df.shift(periods=-1,axis=1)
print("Shifted DataFrame")
print(shifted_df)

输出:

Original DataFrame:
   X  Y
0  1  4
1  2  1
2  3  8
Shifted DataFrame
     X   Y
0  4.0 NaN
1  1.0 NaN
2  8.0 NaN

它将列轴从右向左移动了 1 个周期。


示例代码:DataFrame.shift 方法,参数为 fill_value

在前面的例子中,移位后的缺失值默认用 NaN 来填充,我们也可以通过使用 fill_value 参数用其他值而不是 NaN 来填充。我们也可以通过使用 fill_value 参数用其他值而不是 NaN 来填充缺失值。

import pandas as pd

df = pd.DataFrame({'X': [1, 2, 3,],
                   'Y': [4, 1, 8]})
print("Original DataFrame:")
print(df)

shifted_df=df.shift(periods=-1,
                    axis=1,
                    fill_value=4)
print("Shifted DataFrame")
print(shifted_df)

输出:

Original DataFrame:
   X  Y
0  1  4
1  2  1
2  3  8
Shifted DataFrame
   X  Y
0  4  4
1  1  4
2  8  4

它将所有由 shift() 方法创建的缺失值用 4 填充。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

查找已安装的 Pandas 版本

发布时间:2024/04/23 浏览次数:116 分类:Python

在本文中,我们将介绍如何查找已安装的 Python Pandas 库版本。我们使用了内置版本功能和其他功能来显示其他已安装版本的详细信息。

Pandas 中的 Groupby 索引列

发布时间:2024/04/23 浏览次数:79 分类:Python

本教程将介绍如何使用 Python Pandas Groupby 对数据进行分类,然后将函数应用于类别。通过示例使用 groupby() 函数按 Pandas 中的多个索引列进行分组。

Pandas 通过 Groupby 应用变换

发布时间:2024/04/23 浏览次数:180 分类:Python

本教程演示了 Pandas Python 中与 groupby 方法一起使用的 apply 和 transform 之间的区别。

Pandas Vlookup

发布时间:2024/04/23 浏览次数:83 分类:Python

本教程演示如何在 Python 中使用 Pandas 通过不同的技术合并两个不同的表。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便