【发布时间】:2018-09-14 03:40:41
【问题描述】:
以下是我拥有的数据框。 “目标”列是所需的输出。
Group Item Value Target
1 0 5 0
1 1 4 0
1 0 6 0
1 0 3 1
1 1 2 0
1 0 1 1
2 1 8 0
2 0 9 0
2 0 7 1
在给定的Group、if Item == 1 中,我试图找到Value 小于Item == 1 对应的Value 的第一个未来/下一行。例如,在第二行中,Item == 1 和对应的Value 为 4。Value 小于 4 的第一个未来行是第 4 行,其 Value 为 3。因此,@987654331 @column 用 1 指定查找。两个Item==1 有可能在满足条件的情况下具有相同的未来行。在这种情况下,我们也可以在Target 中有一个 1。
import pandas as pd
df = pd.DataFrame({'Group1': [1,1,1,1,1,1,2,2,2], 'Item': [0,1,0,0,1,0,1,0,0], 'Value': [5,4,6,3,2,1,8,9,7]})
df['next_Value'] = df.groupby(['Group'])['Value'].shift(-1)
【问题讨论】:
标签: python pandas numpy dataframe