如何在python中根据列中的变量位置计算行数
我有一个数据框,看起来是这样的:(处理有多重可能的字符变量,我只是简化了问题) 我只想用Python保持对每个ID的最小位置的处理 结果将是:如何在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
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()