Python去重数据并获取到多条数据出现的投诉时间
需求:根据每一个规则去重数据然后获取这个数据中出现的投诉时间并已逗号分割
Python代码实现
import pandas as pd
# 定义账号脱敏函数
def desensitize_account(account):
account_str = str(account) # 将账号转换为字符串类型
if len(account_str) < 8:
return account_str # 如果账号长度小于8位,则不脱敏
else:
return account_str[:2] + '****' + account_str[-2:] # 脱敏账号中间4位
# 读取 Excel 文件
df = pd.read_excel('投诉.xlsx')
# 将 Timestamp 类型的数据转换为字符串
df['投诉时间'] = df['投诉时间'].dt.strftime('%Y-%m-%d %H:%M:%S')
# 根据宽带号码去重获取每条工单中的投诉时间
complaint_times = df.groupby('宽带账号')['投诉时间'].apply(lambda x: ','.join(x)).reset_index()
# 输出结果(脱敏后的宽带账号)
for index, row in complaint_times.iterrows():
desensitized_account = desensitize_account(row['宽带账号'])
print(f"{desensitized_account}:{row['投诉时间']}")
# complaint_times.to_excel('提取数据.xlsx', index=False)
print("保存成功")