我创建了以下 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)
数据框如下所示:
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
我需要创建一个新的数据框(称为),其中仅包含第一条记录,每个ds
记录的列值均非零。values
cycle
我想这可以通过df.groupby(['cycle'])
代码周围的东西来完成。
所以生成的数据框将如下所示:
cycle values
0 1 -1
1 2 2
删除空项(例如使用
query
),然后drop_duplicates
:输出:
你可以
filter
出零元素用于
groupby
按循环分组提取
first
每个组的元素