You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于列值删除DataFrame重复行时出现语法错误求助

解决DataFrame删除重复日期行的问题

你的代码存在两个关键问题:

  • pandas的drop是方法,必须用圆括号()调用,你写成了方括号[],这是触发语法错误的直接原因
  • 筛选重复行的逻辑有误,df_daily[0].drop_duplicates(keep=False)返回的是去重后的日期序列,不能直接用来做布尔索引筛选DataFrame

以下是两种可行的写法,均可实现删除所有日期重复的行,仅保留日期唯一的行:

方法一:直接筛选非重复行

# 保留日期列(df_daily[0])中只出现一次的行
dp_check = df_daily[~df_daily[0].duplicated(keep=False)]

这里duplicated(keep=False)会给所有重复的行标记True(不管是第一次还是后续出现的),用~取反就能筛选出仅出现一次的行。

方法二:用drop删除重复行

# 先获取所有重复日期行的索引
dup_rows_index = df_daily[df_daily[0].duplicated(keep=False)].index
# 删除这些索引对应的行,得到仅保留非重复行的新DataFrame
dp_check = df_daily.drop(dup_rows_index)

另外注意:你的原代码同时用了dp_check = ...和inplace=True,这会导致dp_check变成None(因为inplace=True时drop方法不会返回新对象)。如果要保留原DataFrame不变,就不要用inplace=True,直接接收返回的新对象即可。

内容的提问来源于stack exchange,提问作者Justin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 07:15:05