将同一借据号对应的两条紧急联系人信息组装成一条记录

今天接到数据组的一个需求:
需要将同一借据号对应的两条紧急联系人信息组装成一条记录。
原始数据如下:

需要将上图两条记录合并成一条记录。然后两个紧急联系人的列名,分别变成紧急联系人1,紧急联系人2。

基本思路:
分析:因为两条记录其他信息都是重复的,只有最后三列是不同的。只需要将信息两条记录分拆成两个表格,重命名这三列,再合并一下就可以了。
这样技能保证重复的地方合并为一条记录,不重复的地方分别占据三列了。

实现代码:

#!/usr/bin/env python3
#encoding:utf-8
import pandas as pd
import numpy as np

# 读取excel
df = pd.read_excel('m020171205.xlsx')

# 只保留第一项,并修改列名
df_first = df.drop_duplicates(['借据号'],keep='first')
df_first_rename = df_first.rename(columns={'紧急联系人电话': '紧急联系人1电话', '紧急联系人姓名': '紧急联系人1姓名', '紧急联系人关系': '紧急联系人1关系'})

# 只保留第二项,并修改列名
df_last = df.drop_duplicates(['借据号'],keep='last')
df_last_rename = df_last.rename(columns={'紧急联系人电话': '紧急联系人2电话', '紧急联系人姓名': '紧急联系人2姓名', '紧急联系人关系': '紧急联系人2关系'})

# merge合并,两个紧急联系人列名不同,不会合并
pd.merge(df_first_rename,df_last_rename)
posted @ 2017-12-05 16:25  bingo彬哥  阅读(231)  评论(0编辑  收藏  举报
本站总访问量