表格中找出相同数据并修改

近期在 POC 时候遇到一个问题点,在这里分享给大家
需求:
客户需要将匹配好的表格数据(如下)导入到 ERP 系统中进行审核
表格中找出相同数据并修改
但是该系统审核的时候存在这样的一个问题,就是导入的表格数据中不可以出现相同的交易时间,由于导入表是由网银系统导出的若干张表格匹配合并而来,会有概率性出现 2 笔交易时间相同的情况,所以当出现相同时间时,需要将其中一条的交易时间 +1 秒。

思路:
我们要找出导入表中的相同数据,那么如何去找呢?
我们知道表格数据去重是通过drop_duplicates方式去实现,该方法有个属性就是data.drop_duplicates(subset=['A','B'],keep='first',inplace=True)keep=’first’表示保留第一次出现的重复行,是默认值。keep 取值为 False,表示去除所有重复行。
那么处理方式就是
1、先将 df 做一次去重处理,保留第一次出现的重复值为 df_b
2、再将 df 做一次去重处理,不保留任何重复值为 df_a
3、将两次的去重的数据进行合并,这样生成的 df 就只有原先重复的部分不再重复了。
4、最后再次将生成的 df 进行去重,不保留任何重复值,生成的就是我们需要找到的原始 df 的重复数据啦。
5、随后将重复数据的时间通过 map 的方式进行 +1 秒操作,随后按照时间排序,这样导入的数据就不会有问题啦。
代码如下

df_b = df.drop_duplicates(subset=['交易时间'])
if len(df_b)!=len(df):
    df_a = df.drop_duplicates(subset=['交易时间'],keep=False)
    df7 = pd.concat([df_a,df_b]).drop_duplicates(keep=False)
    df7['交易时间'] = df7['交易时间'].map(lambda x:x[0:-1]+str(int(x[-1])+1))
    df7 = pd.concat([df_b,df7])
    df7 = df7.sort_values(by='交易时间')
    print('有重复时间')
else:
    print('没有重复时间')

本来想找个直接可以找出 df 重复值并修改的方案,但是木有找到就只好通过去重的方法去变相实现了。

如果有其他

+1S

的方式欢迎讨论。