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

如何按Code分组,将Date相同的条目Same_Month字段更新为yes?

按Code分组后,将同一Date的条目Same_Month字段设为yes的实现方法

需求说明

按Code字段分组,当组内存在相同Date的条目时,将这些条目的Same_Month字段更新为yes;若某个Date在对应Code组内仅出现一次,则保持Same_Month为空。给定的数据框示例中,预期结果为编号4、13、14的条目Same_Month为空,其余均为yes。

实现步骤与代码

1. 统一日期格式

原始数据中Date字段存在多种格式(如2023-01-02 00:00:00、01/16/2023、26/11/2018),需先转换为标准的datetime类型,避免因格式差异导致重复判断错误:

import pandas as pd

# 初始化数据框
df = pd.DataFrame([[1,'2023-01-02 00:00:00','01','2023',''],
                   [2,'2023-01-02 00:00:00','01','2023',''],
                   [3,'01/16/2023','01','2023',''],
                   [4,'01/17/2023','01','2023',''],
                   [5,'01/16/2023','01','2023',''],
                   [6,'02/13/2023','02','2023',''],
                   [7,'02/13/2023','02','2023',''],
                   [8,'02/13/2023','02','2023',''],
                   [9,'26/11/2018','11','2018',''],
                   [10,'26/11/2018','11','2018',''],
                   [11,'26/11/2018','11','2018',''],
                   [12,'26/11/2018','11','2018',''],
                   [13,'05/11/2018','11','2018',''],
                   [14,'09/11/2018','11','2018',''],
                  ],
                  columns=['Number','Date','Code','year','Same_Month'])

# 转换Date为datetime类型,自动识别多格式,dayfirst=True适配日/月/年格式
df['Date'] = pd.to_datetime(df['Date'], dayfirst=True)

2. 标记重复条目并更新Same_Month

这里提供两种简洁的实现方式:

方法一:使用duplicated标记重复项

利用duplicated方法,指定subset=['Code', 'Date']判断同一Code下的重复日期,keep=False会标记所有重复的条目,再将布尔值映射为yes或空字符串:

df['Same_Month'] = df.duplicated(subset=['Code', 'Date'], keep=False).map({True: 'yes', False: ''})
方法二:使用groupby+transform计算组大小

按Code和Date分组,计算每组的条目数量,当组内数量大于1时,说明存在重复日期,将对应条目设为yes:

df['Same_Month'] = df.groupby(['Code', 'Date'])['Number'].transform(lambda x: 'yes' if len(x) > 1 else '')

3. 验证结果

执行上述代码后,查看Number和Same_Month字段:

print(df[['Number', 'Same_Month']])

输出结果符合预期:

Number Same_Month
0        1        yes
1        2        yes
2        3        yes
3        4           
4        5        yes
5        6        yes
6        7        yes
7        8        yes
8        9        yes
9       10        yes
10      11        yes
11      12        yes
12      13           
13      14           

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 22:27:11