如何在DataFrame中仅保留每个日期首次出现的Symbol记录?
解决方法
你的问题出在drop_duplicates的subset参数设置上——你同时指定了date和symbol,这只会剔除同一日期下重复的Symbol记录,但你要的是每个日期仅保留第一条记录,不管Symbol是否不同。
正确的写法只需要将subset限定为date即可:
# 方式1:不修改原DataFrame,返回新的过滤后数据 df_filtered = df_filtered.drop_duplicates(subset=['date'], keep='first') # 方式2:直接修改原DataFrame df_filtered.drop_duplicates(subset=['date'], keep='first', inplace=True)
如果你的DataFrame日期顺序可能混乱,建议先按日期排序再去重,确保保留的是每个日期的第一条有效记录:
df_filtered = df_filtered.sort_values('date').drop_duplicates(subset=['date'], keep='first')
内容的提问来源于stack exchange,提问作者a7dc
相关产品推荐
相关产品推荐

