gpt4 book ai didi

python - 根据两个Dataframe中的匹配值生成增量ID

转载 作者:行者123 更新时间:2023-12-01 06:27:55 24 4
gpt4 key购买 nike

您好,我在基于两个数据帧生成增量 ID 时遇到一些问题。我想根据匹配部门生成id,当前年份和月份匹配最后生成的数据。

示例:

DF1 包含部门名称、最后生成的 ID 以及生成的年份和月份。

enter image description here

DF2 包含员工姓名、分配的部门,这也是我为该员工生成 ID 的位置。

enter image description here

正如您在 DF2 生成的 id 中看到的,如果它与当前年份和月份“2002”匹配,那么我会增加之前的 id,否则我会将计数返回到 1。

这是我尝试过的,但仅限于特定单元格

 # Generate ID, Enco
DF2= DF2.merge(DF1, on ="Dept",how='left')

DF2= DF2.reset_index()

DF2['id'] = DF2.index.astype(int) + startCode

DF2['Emp ID']=str(YYMM) + "-" + DF2['id'].astype(str)

最佳答案

使用GroupBy.cumcount对于每个组的计数器,还将 Last Count 中不匹配的 YYMM 替换为 0 以重置计数:

yymm = int(pd.Timestamp('now').strftime('%y%m'))

DF2 = DF2.merge(DF1, on ="Dept",how='left')
s = DF2['Last Count'].where(DF2['YYMM'] == yymm, 0)
s1 = DF2.groupby('Dept').cumcount().add(1).add(s).astype(str)
DF2['Emp Id'] = s1 + '-' + DF2['YYMM'].astype(str)

关于python - 根据两个Dataframe中的匹配值生成增量ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60034402/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com