如何根据 python 列中的可变位置对行进行计数
How to count rows based on the variable position in a column in python
我有一个看起来像这样的数据框:(处理有多种可能的字符变量,我只是针对问题进行了简化)
ID Position Treatment
--20AxECvv- 0 A
--20AxECvv- -1 A
--20AxECvv- -2 A
--h9INKewQf- 0 A
--h9INKewQf- -1 B
--h9INKewQf- -2 B
--h9INKewQf- -3 B
--h9INKewQf- -4 B
--h9INKewQf- -5 B
--h9INKewQf- -6 B
--h9INKewQf- -7 B
zZU7a@8jN 0 B
QUeSNEXmdB 0 C
QUeSNEXmdB -1 C
qu72Ql@h79 0 C
我只想保留每个ID的最小位置处理Python。
结果将是:
ID Position Treatment
--20AxECvv- -2 A
--h9INKewQf- -7 B
zZU7a@8jN 0 B
QUeSNEXmdB -1 C
qu72Ql@h79 0 C
我是初学者,我想我必须使用 groupby 并按最小位置进行过滤,但我不知道如何编写它。提前致谢:)
您还可以使用 df.sort_values
对数据框进行排序,并使用 df.drop_duplicates
:
删除重复项
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 Position Treatment
--20AxECvv- 0 A
--20AxECvv- -1 A
--20AxECvv- -2 A
--h9INKewQf- 0 A
--h9INKewQf- -1 B
--h9INKewQf- -2 B
--h9INKewQf- -3 B
--h9INKewQf- -4 B
--h9INKewQf- -5 B
--h9INKewQf- -6 B
--h9INKewQf- -7 B
zZU7a@8jN 0 B
QUeSNEXmdB 0 C
QUeSNEXmdB -1 C
qu72Ql@h79 0 C
我只想保留每个ID的最小位置处理Python。
结果将是:
ID Position Treatment
--20AxECvv- -2 A
--h9INKewQf- -7 B
zZU7a@8jN 0 B
QUeSNEXmdB -1 C
qu72Ql@h79 0 C
我是初学者,我想我必须使用 groupby 并按最小位置进行过滤,但我不知道如何编写它。提前致谢:)
您还可以使用 df.sort_values
对数据框进行排序,并使用 df.drop_duplicates
:
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()