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

如何用Pandas合并两个DataFrame并保留唯一ShowingDateTime(优先取第一个)

Pandas合并CSV文件并按规则去重排序的实现方案

没问题,这需求用Pandas的几个核心方法就能轻松搞定,我给你一步步拆解实现思路和代码:

1. 读取CSV文件并解析日期字段

首先咱们需要把两个CSV文件读取成DataFrame,重点要把ShowingDateTime字段解析成日期时间类型,否则后面排序和去重会因为字符串格式出问题。代码如下:

import pandas as pd

# 读取第一个CSV,指定解析ShowingDateTime为日期类型
df1 = pd.read_csv('csv1.csv', parse_dates=['ShowingDateTime'])
# 读取第二个CSV,同样解析日期字段
df2 = pd.read_csv('csv2.csv', parse_dates=['ShowingDateTime'])

如果你的日期格式比较特殊(比如示例里的1/4/17 12:00是月/日/年),Pandas默认能识别,但如果遇到识别失败的情况,可以额外指定date_format参数,比如:

df1 = pd.read_csv('csv1.csv', parse_dates=['ShowingDateTime'], date_format='%m/%d/%y %H:%M')

2. 合并DataFrame并按规则去重

接下来把两个DataFrame行拼接起来,然后针对ShowingDateTime字段去重,保留第一个DataFrame里的重复行,舍弃第二个的。这里用pd.concat()拼接,再用drop_duplicates()实现去重规则:

# 拼接两个DataFrame,df1在前,df2在后
combined_df = pd.concat([df1, df2], ignore_index=True)
# 按ShowingDateTime去重,保留第一次出现的行(也就是df1里的行)
deduplicated_df = combined_df.drop_duplicates(subset='ShowingDateTime', keep='first')

这里keep='first'是关键,因为我们把df1放在前面拼接,所以重复的日期会优先保留df1里的记录。

3. 按ShowingDateTime升序排序

最后对去重后的DataFrame按日期字段升序排序:

# 按ShowingDateTime升序排序,重置索引
final_df = deduplicated_df.sort_values(by='ShowingDateTime', ascending=True).reset_index(drop=True)

reset_index(drop=True)是为了去掉排序后混乱的旧索引,生成连续的新索引,方便后续处理。

完整代码整合

把上面的步骤整合起来,就是完整的实现代码:

import pandas as pd

# 读取CSV并解析日期
df1 = pd.read_csv('csv1.csv', parse_dates=['ShowingDateTime'])
df2 = pd.read_csv('csv2.csv', parse_dates=['ShowingDateTime'])

# 拼接+去重+排序
final_df = pd.concat([df1, df2], ignore_index=True)\
            .drop_duplicates(subset='ShowingDateTime', keep='first')\
            .sort_values(by='ShowingDateTime', ascending=True)\
            .reset_index(drop=True)

# 可以查看结果或者保存为新CSV
print(final_df.head())
# final_df.to_csv('merged_result.csv', index=False)

补充说明

  • 如果你的需求是列合并(比如两个CSV有不同的列,需要按日期关联),那就要用merge方法,但从你的描述来看,应该是行合并后去重,所以concat+drop_duplicates是最优方案。
  • 一定要确保ShowingDateTime是日期时间类型,否则排序可能会出现字符串排序的错误(比如10/1/17会排在2/1/17前面)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:56:19