如何在Python的DataFram中用单元格(i-1,j-1)填充单元格(i,j)

时间:2018-12-22 05:24:16

标签: python dataframe cell

起初,我想为我的措辞道歉,因为我不确定如何问我的问题。假设我有一个数据框如下

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

A | 2001 | 2 |南

A | 2002 | 3 |南

A | 2003 | 5 |南

A | 2004 | 6 |南

A | 2005 | 7 |南

B | 2001 | 9 |南

B | 2002 | 3 |南

B | 2003 | 5 |南

B | 2004 | 6 |南

B | 2005 | 7 |南

我希望用'item'列的上一个值填充'item_p'列中的每个单元格

所以结果必须像下面这样:

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

A | 2001 | 2 |南

A | 2002 | 3 | 2

A | 2003 | 5 | 3

A | 2004 | 6 | 5

A | 2005 | 7 | 6

B | 2001 | 9 | 7

B | 2002 | 3 | 9

B | 2003 | 5 | 3

B | 2004 | 6 | 5

B | 2005 | 7 | 6

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

1 个答案:

答案 0 :(得分:2)

使用df.shift()

在您的示例中:

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

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