【问题标题】:How to fill the cell (i,j) with the cell (i-1,j-1) in a DataFram in Python如何在 Python 的 DataFram 中用单元格 (i-1,j-1) 填充单元格 (i,j)
【发布时间】:2019-05-22 10:14:45
【问题描述】:

首先,我想为我的措辞道歉,因为我不知道如何问我的问题。假设我有一个如下的数据框

'T' 'Y' 'item' 'item_p'

一个 | 2001 | 2 |南

一个 | 2002 | 3 |南

一个 | 2003 | 5 |南

一个 | 2004 | 6 |南

一个 | 2005 | 7 |南

B | 2001 | 9 |南

B | 2002 | 3 |南

B | 2003 | 5 |南

B | 2004 | 6 |南

B | 2005 | 7 |南

我希望“item_p”列中的每个单元格都用“item”列的前一个值的值填充

所以结果一定如下:

'T' 'Y' 'item' 'item_p'

一个 | 2001 | 2 |南

一个 | 2002 | 3 | 2

一个 | 2003 | 5 | 3

一个 | 2004 | 6 | 5

一个 | 2005 | 7 | 6

B | 2001 | 9 | 7

B | 2002 | 3 | 9

B | 2003 | 5 | 3

B | 2004 | 6 | 5

B | 2005 | 7 | 6

我已经使用嵌套的 for 循环完成了这项任务,但我认为有一些更好的方法可以做到这一点。有什么命令可以做这样的任务吗

【问题讨论】:

标签: python dataframe cell


【解决方案1】:

使用 df.shift()

在你的例子中:

df['item_p'] = df['item'].shift(1)

https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.shift.html

【讨论】:

  • @user2356563 不要忘记将答案标记为您选择的答案
  • 我是新来的,我该怎么办?
猜你喜欢
  • 2014-07-12
  • 1970-01-01
  • 1970-01-01
  • 2021-07-04
  • 2022-01-13
  • 1970-01-01
  • 2016-03-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多