我使用 pandas
将两个 CSV 文件合并为一个文件,该文件由名为 ProjectID 的列索引。完成此操作后,仍然存在许多重复记录。我只想保留其中最新的(它们按日期顺序从最近到最近)。到目前为止我的代码是:
merged_df = pandas.merge(df1, df2, on="ProjectID", how="left")
我遇到的问题是如何仅保留项目有多个版本的最后一行。 pandas
中是否有内置的东西可以帮助解决这个问题?
编辑以添加示例数据
当前数据
ProjectID Value Date
1 54 9/21/2010
2 32 10/22/2010
2 32 10/28/2010
3 76 9/21/2010
4 37 9/21/2010
4 37 11/12/2010
4 38 11/14/2010
想要的数据
ProjectID Value Date
1 54 9/21/2010
2 32 10/28/2010
3 76 9/21/2010
4 38 11/14/2010
最佳答案
drop_duplicates
是 pandas 用于从数据框中删除重复项的函数。默认情况下,它会保留第一个观察到的重复值,但您可以使用 take_last=
参数来保留最后一个。
尝试:merged_df2 = merged_df.drop_duplicates('ProjectID', take_last=True)
关于python - 使用 pandas 在数据框中仅保留一条具有给定 ID 的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16243462/