我有以下 pandas DataFrame df
:
import pandas as pd
mydictionary = {'id': ['11X', '11X', '22X', '33A'],
'grade': [68, 74, 77, 78],
'checkdate': ["2019-12-26", "2019-12-27", "2019-12-26", "2019-12-25"]}
df = pd.DataFrame(mydictionary)
我想按 checkdate
对值进行排序,并按 id
删除重复项,同时保留最新条目。
预期结果是这样的:
id grade checkdate
11X 74 2019-12-27
22X 77 2019-12-26
33A 78 2019-12-25
我知道如何对值进行排序:
df.sort_values("checkdate")
此外,我知道如何删除重复项:
df.drop_duplicates(subset=["id"], keep='first', inplace=True)
但是如何将这两件事放在一起呢?
最佳答案
你可以尝试:
import pandas as pd
mydictionary = {'id': ['11X', '11X', '22X', '33A'],
'grade': [68, 74, 77, 78],
'checkdate': ["2019-12-26", "2019-12-27", "2019-12-26", "2019-12-25"]}
df = pd.DataFrame(mydictionary)
df['checkdate'] = pd.to_datetime(df['checkdate'])
df2 = df.sort_values(by=['checkdate']).drop_duplicates('id', keep='last')
print(df2)
结果:
id grade checkdate
3 33A 78 2019-12-25
2 22X 77 2019-12-26
1 11X 74 2019-12-27
关于python - 如何按日期对值进行排序并按列删除重复项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59523506/