前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Pandas基础:在Pandas数据框架中移动列

Pandas基础:在Pandas数据框架中移动列

作者头像
fanjy
发布2022-06-04 09:36:46
3.1K0
发布2022-06-04 09:36:46
举报
文章被收录于专栏:完美Excel完美Excel

标签:pandas,Python

有时候,我们需要在pandas数据框架内移动一列,shift()方法提供了一种方便的方法来实现。

为了演示起见,我们创建两个数据框架:df包含字母索引,df2包含日期时间索引。

import pandas as pd

df = pd.DataFrame({'a':range(0,5),

'b':range(5,10)})

df2 = pd.DataFrame({'a':range(0,5),

'b':range(5,10)},

index=pd.date_range("2020-01-01","2020-01-05"))

pandas Shift()语法

DataFrame.shift(periods = 1,

freq = None,

axis = 0,

fill_value)

注意,pandas.Series对象还有一个类似的方法shift(),该方法允许为Series移动数据。

在pandas数据框架中向上/向下移动列

要向下移动列,将periods设置为正数。要向上移动列,将其设置为负数。

注意,只有数据发生了移位,而索引保持不变。数据移动了,现在有两个空行,由np.nan值自动填充。

对时间序列数据移动列

当处理时间序列数据时,可以通过包含freq参数来改变一切,包括索引和数据。注意下面的例子,索引随着所有数据向下(向前)移动了2天。目前,如果想使用freq参数,索引必须是datetime类型的数据,否则pandas将引发NotImplementedError。

向左或向右移动列

可以使用axis参数来控制移动的方向。默认情况下,axis=0,这意味着移动行(向上或向下);设置axis=1将使列向左或向右移动。

在下面的示例中,将所有数据向右移动了1列。因此,第一列变为空,由np.nan自动填充。

如果不需要NaN值,还可以使用fill_value参数填充空行/空列。

Pandas.Series shift()方法

如前所述,Series类还有一个类似的shift()方法,其工作方式完全相同,只是它对一个系列(即单个列)而不是整个数据框架进行操作。当然,由此产生的数据是一个pandasSeries。

注:本文学习整理自pythoninoffice.com。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-04-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档