Pandas - 获取给定列值的第一次出现

dat*_*den 2 python dataframe pandas

我在锦标赛的不同轮次中df重复了一个 with ,如下所示:names

name   round_id price_open
John       1     5.0
Paul       1     4.0
John       2     5.4
Paul       2     3.4
John       3     5.0
Paul       3     4.0
Run Code Online (Sandbox Code Playgroud)

但在第 3 轮,一名新玩家进入锦标赛:

...
George     3     6.0
...
Run Code Online (Sandbox Code Playgroud)

假设我需要过滤所有起始价格,如下所示:

df_open = df[df['round_id']==1]['price_open']
Run Code Online (Sandbox Code Playgroud)

这对乔治来说是好事NaN,但这不是我需要的。


那么我如何过滤这个 df 以获得所有玩家的第一个开盘价格,最终是什么呢?

name  price_open
John   5.0
Paul   4.0
George 6.0 
Run Code Online (Sandbox Code Playgroud)

Cor*_*ien 11

用于drop_duplicates保留每个名称的第一个实例:

>>> df.drop_duplicates('name')
     name  round_id  price_open
0    John         1         5.0
1    Paul         1         4.0
6  George         3         6.0
Run Code Online (Sandbox Code Playgroud)