我有一个df如下:
name pid cost Date
0 a 1 800 1991-01-31
1 b 2 200 1991-01-31
2 c 3 300 1991-01-31
3 a 1 400 2001-01-31
4 b 4 500 2001-01-31
5 c 3 600 2001-01-31
我想根据(name,pid)对的最新Date
向这个df添加一个新列maxCost
。所以,最终的输出应该是这样的:
name pid cost Date maxCost
0 a 1 800 1991-01-31 400
1 b 2 200 1991-01-31 200
2 c 3 300 1991-01-31 600
3 a 1 400 2001-01-31 400
4 b 4 500 2001-01-31 500
5 c 3 600 2001-01-31 600
我使用创建了一个groupby对象
df.groupby(['name','pid']).Date.max().reset_index()
这给了我这样一个数据帧:
name pid Date
0 a 1 2001-01-31
1 b 2 1991-01-31
2 b 4 2001-01-31
3 c 3 2001-01-31
这为(name,pid)对提供了正确的日期,但是如何从cost列中提取值呢
任何帮助都将不胜感激
注意:我做了reset_index()
,只是为了让它在这篇文章中更好地显示
更新:maxCost
应该查看最新日期的成本。更新行上的成本index:0 from 100到800
IIUC,您可以将^{} 与
max
一起使用:[输出]
编辑
如果您希望获取最新日期的索引并查找相关成本,则可以使用:
[输出]
在
sort_values
之前transform
first
相关问题 更多 >
编程相关推荐