在python中,如何获取以另一个值为条件的组中的最小日期。
例如,下面我想通过id来确定最小日期,其中value == 1,或者如果不存在等于1的值(value == 1),那么要在value == 0的最小日期。
|----|--------------|-------------|
| id | date | value |
|----|--------------|-------------|
| 1 | 2020-01-01 | 1 |
| 1 | 2020-01-04 | 1 |
| 1 | 2020-01-05 | 1 |
| 2 | 2020-01-01 | 1 |
| 3 | 2020-01-01 | 0 |
| 3 | 2020-01-05 | 1 |
| 4 | 2020-01-05 | 0 |
|----|--------------|-------------|
期望:
|----|--------------|-------------|
| id | date | value |
|----|--------------|-------------|
| 1 | 2020-01-01 | 1 |
| 2 | 2020-01-01 | 1 |
| 3 | 2020-01-05 | 1 |
| 4 | 2020-01-05 | 0 |
|----|--------------|-------------|
使用DataFrame.sort_values
所有3列,然后通过删除重复id
列有DataFrame.drop_duplicates
:
df['date'] = pd.to_datetime(df['date'])
df = (df.sort_values(['id','value','date'], ascending=[True, False, True])
.drop_duplicates(['id']))
print (df)
id date value
0 1 2020-01-01 1
3 2 2020-01-01 1
5 3 2020-01-05 1
6 4 2020-01-05 0
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句