PYTHON 如何使用 numpy.where 添加包含下一行数据框中的数据的列?

Posted

技术标签:

【中文标题】PYTHON 如何使用 numpy.where 添加包含下一行数据框中的数据的列?【英文标题】:PYTHON How to add a column using numpy.where that includes data from the dataframe in the next row? 【发布时间】:2020-09-14 23:36:36 【问题描述】:

我真的是 python 新手,非常感谢您的帮助。

我正在尝试在 python 中向我的数据框添加一列。我正在使用以下内容:

df['capital']=np.where(df['year']!=1960,2,df['GDP'])

除了,当我写 GDP 时,我真正想要的是 1961 年的 GDP。知道如何包含它吗?

【问题讨论】:

【参考方案1】:

您可以使用.shift() 来使用下一行中的GDP 值。默认情况下,1 会传递给 .shift(),但您也可以传递 -12 等来向上或向下比较任意数量的行:

df['capital'] = np.where((df['year'] != 1960), 2, df['GDP'].shift())

【讨论】:

以上是关于PYTHON 如何使用 numpy.where 添加包含下一行数据框中的数据的列?的主要内容,如果未能解决你的问题,请参考以下文章

Python空数组判断

Numpy根据条件批量修改元素的值(numpy.where)

Pandas 掩码 / where 方法与 NumPy np.where

numpy.where和numpy.piecewise的用法

使用 numpy.where() 在给定范围内的两个数组中搜索元素

numpy高级函数:where与extract