Eu criei o seguinte dataframe do pandas:
import pandas as pd
ds = {'cycle' : [1,1,1,1,2,2,2,2], 'values' : [0,0,-1,1,2,0,0,1]}
df = pd.DataFrame(data=ds)
O quadro de dados fica assim:
df
cycle values
0 1 0
1 1 0
2 1 -1
3 1 1
4 2 2
5 2 0
6 2 0
7 2 1
Preciso criar um novo dataframe (chamado ds
) que contenha apenas o primeiro registro com valor diferente de zero para as colunas values
de cada um cycle
.
Eu acho que isso pode ser feito com algo em torno do df.groupby(['cycle'])
código.
Portanto, o dataframe resultante ficaria assim:
cycle values
0 1 -1
1 2 2
Remova os itens nulos (por exemplo
query
, com ) e entãodrop_duplicates
:Saída:
Você pode
filter
fora os elementos zerouse
groupby
para agrupar por cicloextrair o
first
elemento para cada grupo