【发布时间】:2018-01-26 10:34:48
【问题描述】:
我发布此内容是因为该主题刚刚在另一个问题/答案中提出,并且该行为没有得到很好的记录。
考虑数据框df
df = pd.DataFrame(dict(
A=list('xxxyyy'),
B=[np.nan, 1, 2, 3, 4, np.nan]
))
A B
0 x NaN
1 x 1.0
2 x 2.0
3 y 3.0
4 y 4.0
5 y NaN
我想获取由列'A' 定义的每个组的第一行和最后一行。
我试过了
df.groupby('A').B.agg(['first', 'last'])
first last
A
x 1.0 2.0
y 3.0 4.0
但是,这并没有给我预期的np.NaNs。
如何获得每组中的实际第一个和最后一个值?
【问题讨论】:
-
请注意
df.groupby('A').B.agg(['idxmax', 'idxmin'])与first()和last()保持相同的结果
标签: python pandas group-by pandas-groupby