python 补全有重复值的信息

# coding:utf-8
import csv
import pdb
ids_input,datas_input,colomn_input = '', '', ''
ids_format,datas_format,column_format = '', '', []
final_data = {}
# 输入包含重复值的key
ids = input('全部id:')
# 将换行输入的数据变成特定格式字符串
for line in iter(input, ids_input):
    ids_format += line + '\n'
# 输入不包含重复值的对应数据
datas = input('完整数据:')
for line in iter(input, datas_input):
    datas_format+= line + '\n'
# 输入完整列名,方便输出
column_num = input('完整列名:')
for line in iter(input, colomn_input):
    column_format.append(line)
# 将输入值格式化为数组
id = ids_format.split()
data = datas_format.split()
# 完整数据变成 key->value 字典
key, value = '', []
for i in range(len(data)):
    column_num = len(column_format)
    if (i+1)%column_num == 1:
        key = data[i]
    elif (i+1)%column_num == 0:
        value.append(data[i])
        final_data[key] = value
        value = []
    else:
        value.append(data[i])
#python2可以用file替代open
with open("names.csv","w", newline='') as csvfile:
    writer = csv.writer(csvfile)
    #先写入columns_name
    writer.writerow(column_format)
    list = []
    #循环所有id 补全信息并输出
    for i, v in enumerate(id):
        list.append(str(v))
        if str(v) in final_data.keys():
            f_list = list+final_data[str(v)]
        else:
            kong={}
            kong[str(v)] = []
            f_list = list + kong[str(v)]
        writer.writerow(f_list)
        list = []

在这里插入图片描述
csv文件内容
在这里插入图片描述
excel打开
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值