【发布时间】:2017-03-24 21:52:40
【问题描述】:
我试图在我的 Pandas 数据框中完成两件事:
- 根据新的 DateCompleted 创建新列 Last Row(“是”或“否”)
- 捕获当前行的下一个事务,除非它是新的 DateCompleted(在这种情况下标记为 Null)。
原始数据集
DateCompleted TranNumber Sales
0 1/1/17 10:15AM 3133 130.31
1 1/1/17 11:21AM 3531 103.12
2 1/1/17 12:31PM 3652 99.23
3 1/2/17 9:31AM 3689 83.22
4 1/2/17 10:31AM 3701 29.93
5 1/3/17 8:30AM 3709 31.31
期望的输出
DateCompleted TranNumber Sales NextTranSales LastRow
0 1/1/17 10:15AM 3133 130.31 103.12 No
1 1/1/17 11:21AM 3531 103.12 99.23 No
2 1/1/17 12:31PM 3652 99.23 NaN Yes
3 1/2/17 9:31AM 3689 83.22 29.93 No
4 1/2/17 10:31AM 3701 29.93 NaN Yes
5 1/3/17 8:30AM 3709 31.31 ... No
我可以根据以下条件获取 NextTranSales:
df['NextTranSales'] = df.Sales.shift(-1)
但我在确定 DateCompleted 组中的最后一行并将 NextTranSales 标记为 Null(如果它是最后一行)时遇到了问题。
感谢您的帮助!
【问题讨论】:
标签: python pandas group-by shift