我有一个数据集看起来像这样。(我正在寻找一个数据框架解决方案)
df = ({'id':["a","a","a","a","b","b","b"],
'tail_num' :[2,2,2,2,1,1,1],
'value':[1,2,3,4,5,6,7]})
df = pd.DataFrame(df)
对于id为'a'的子组,我想获得与tail_num列对齐的最新2条记录,对于'b',我想获得tail 1值。实现这一点的最佳方法是什么?谢谢!
所需的输出如下所示(基本上是基于tail_num获取tail n值,并显示所有列):
df = ({'id':["a","a","b"],
'tail_num' :[2,2,1],
'value':[3,4,7]})
df = pd.DataFrame(df)
2条答案
按热度按时间p4rjhz4m1#
您可以
GroupBy
id
列并应用 custom/mappedtail
:或者没有字典:
Ouptut:
ryevplcw2#
由于在问题中最初并不清楚您正在寻找Pandas解决方案,因此以下是如何在普通Python中完成的。
在未来,请不要让回答者猜测你需要什么。
输出: