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

如何按date与id合并两个DataFrame并生成按日期有序的结果?

解决方案

要实现需求,只需通过拼接DataFrame + 转换日期格式 + 排序三步即可完成,具体代码及说明如下:

示例代码

import pandas as pd

# 模拟用户提供的两个DataFrame
df_1 = pd.DataFrame({
    'date': ['2019-05', '2019-06', '2019-07', '2019-08',
             '2019-05', '2019-06', '2019-07', '2019-08',
             '2019-05', '2019-06', '2019-07', '2019-08'],
    'id': [5,5,5,5,2,2,2,2,70,70,70,70],
    'score': [78.9,77.5,80.2,82.0,79.9,69.3,75.2,80.0,68.8,67.5,70.2,86.0]
})

df_2 = pd.DataFrame({
    'date': ['2019-01', '2019-02', '2019-03', '2019-04',
             '2019-01', '2019-02', '2019-03', '2019-04',
             '2019-01', '2019-02', '2019-03', '2019-04'],
    'id': [2,2,2,2,5,5,5,5,70,70,70,70],
    'score': [79.1,79.2,75.2,80.0,78.9,78.5,80.8,82.8,68.4,72.2,70.5,81.0]
})

# 1. 拼接两个结构一致的DataFrame
combined_df = pd.concat([df_1, df_2])

# 2. 将date列转为日期类型,避免字符串排序的逻辑错误
combined_df['date'] = pd.to_datetime(combined_df['date'])

# 3. 按id升序分组,每组内按date升序排列
result_df = combined_df.sort_values(by=['id', 'date'], ascending=[True, True])

# 4. 重置索引,让结果索引连续整洁(可选)
result_df = result_df.reset_index(drop=True)

# 输出结果
print(result_df)

步骤说明

  • 拼接DataFrame:用pd.concat()将两个列结构完全相同的数据集上下合并,得到完整的原始数据。
  • 转换日期格式:把date列从字符串转为datetime类型,确保后续排序是按真实日期顺序,而非字符串字典序(比如避免"2019-10"排在"2019-05"前面的错误)。
  • 排序:通过sort_values()指定排序规则,先按id分组排序,再在每个id组内按date升序排列。
  • 重置索引:排序后原索引会混乱,用reset_index(drop=True)重新生成连续索引,让结果更规范。

最终输出

执行代码后会得到符合要求的结果:

date  id  score
0  2019-01-01   2   79.1
1  2019-02-01   2   79.2
2  2019-03-01   2   75.2
3  2019-04-01   2   80.0
4  2019-05-01   2   79.9
5  2019-06-01   2   69.3
6  2019-07-01   2   75.2
7  2019-08-01   2   80.0
8  2019-01-01   5   78.9
9  2019-02-01   5   78.5
10 2019-03-01   5   80.8
11 2019-04-01   5   82.8
12 2019-05-01   5   78.9
13 2019-06-01   5   77.5
14 2019-07-01   5   80.2
15 2019-08-01   5   82.0
16 2019-01-01  70   68.4
17 2019-02-01  70   72.2
18 2019-03-01  70   70.5
19 2019-04-01  70   81.0
20 2019-05-01  70   68.8
21 2019-06-01  70   67.5
22 2019-07-01  70   70.2
23 2019-08-01  70   86.0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 00:55:12