如何在python中根据列中的变量位置计算行数

如何在python中根据列中的变量位置计算行数,python,pandas,loops,dataframe,minimum,Python,Pandas,Loops,Dataframe,Minimum,我有一个数据框,看起来是这样的:(处理有多重可能的字符变量,我只是简化了问题) 我只想用Python保持对每个ID的最小位置的处理 结果将是: ID Position Treatment --20AxECvv- -2 A --h9INKewQf- -7 B zZU7a@8jN 0 B QUeSNEXmdB -1

我有一个数据框,看起来是这样的:(处理有多重可能的字符变量,我只是简化了问题)

我只想用Python保持对每个ID的最小位置的处理

结果将是:

 ID              Position            Treatment
--20AxECvv-         -2          A
--h9INKewQf-        -7          B
zZU7a@8jN           0           B
QUeSNEXmdB          -1          C
qu72Ql@h79          0           C

我是一个初学者,我想我必须使用groupby和按最小位置过滤,但我不知道如何编写它。提前感谢:)

您还可以使用
df对数据帧进行排序。使用
df对值进行排序,并删除重复项。删除重复项

In [795]: df.sort_values('Position').drop_duplicates('ID')
Out[795]: 
              ID  Position Treatment
10  --h9INKewQf-        -7         B
2    --20AxECvv-        -2         A
13    QUeSNEXmdB        -1         C
11     zZU7a@8jN         0         B
14    qu72Ql@h79         0         C
使用groupby和min

df.groupby('ID').min()

通过这样做,我有了一些ID,它们与最后一个位置进行了不同的处理。@Annacarere好的,顺序不同,但它正是您想要的行。当我在整个数据帧中应用它时,仍然有相同的问题,我不明白why@AnnaCarrere你确定吗?您正在运行第二个解决方案,对吗?我删除了第一个。我只是放了一个简化的数据框。我只需要ID列表(每个ID的唯一值)以及基于第一个位置(即最小位置)的相应处理
df.groupby('ID').min()