Я работаю над манипуляциями с пандами и хочу выбрать только две последние строки для каждого столбца «B».
import pandas as pd
df = pd.DataFrame({
'A': list('aaabbbbcccc'),
'B': [0,1,2,5,7,2,1,4,1,0,2],
'V': range(10,120,10)
})
df
df.groupby(['A','B'])['V'].sum()
A B
a
1 20
2 30
b
5 40
7 50
c
2 110
4 80
Пытаться:
df.sort_values(['A', 'B']).groupby(['A']).tail(2)
Выход:
A B V
1 a 1 20
2 a 2 30
3 b 5 40
4 b 7 50
10 c 2 110
7 c 4 80
Может быть, вы ищете
groupby
с параметромas_index=False
?