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

基于Day与Month合并两个Pandas DataFrame的问题求助

解决DataFrame按日期合并排序的问题

看起来你用pd.merge踩了个常见的坑——merge是用来做列关联的(类似SQL里的JOIN操作),当两个DataFrame存在相同的day和month组合时,它会把两个表中对应日期的行做笛卡尔积配对,这就是为什么你的结果数据集异常庞大的原因。而你实际需要的是把两个表的行拼接起来,然后按日期排序。

正确的实现步骤:

  1. 拼接两个DataFrame的行:用pd.concat把df1和df2的所有行合并到一个DataFrame里,ignore_index=True会重置新表的索引,避免索引重复问题。
  2. 按日期排序:根据month和day对拼接后的表排序,确保数据按日期先后顺序排列。

代码示例:

import pandas as pd

# 拼接两个DataFrame的所有行
combined_df = pd.concat([df1, df2], ignore_index=True)

# 按月份、日期排序,生成最终数据集
final_df = combined_df.sort_values(by=['month', 'day'], ignore_index=True)

print(final_df)

处理同日期的特殊需求

你提到“若day和month相同,我希望...”,假设你想让同日期的操作类型1(Operation_type=1)排在类型2前面,可以在排序时额外指定Operation_type字段:

final_df = combined_df.sort_values(by=['month', 'day', 'Operation_type'], ignore_index=True)

这样就能得到和你预期完全一致的数据集——所有行按日期顺序排列,同日期的操作类型也能按你需要的规则排序。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:15:13