用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - python代码库

将规范化的一对多单行数据转成1对1单行数据(全部代码)

2020-09-23 作者: 云代码会员举报

[python]代码库

import random
import csv
 
# 生成随机csv表文件,做实验用
def gen_csv(filename):
    # csv文件数据
    datas = []
    # csv文件表头
    data_header = ['组名']
    # 每一组最多可以有10个组员
    for i in range(10):
        data_header.append('组员'+str(i))
    # 先加表头
    datas.append(data_header)
    # 有10行数据
    for i in range(10):
        # 这一行数据
        row_data = []
        row_data.append('组'+str(i))
        # 组员数量随机
        for j in range(random.randint(3, 10)):
            # 组员名称随机
            row_data.append(str(random.randint(0, 1000)))
        # 向表中添加数据行
        datas.append(row_data)
    print('您生成了数据')
    print(datas)
    # 写出csv文件
    with open(filename, 'w', newline='') as f:
        writer = csv.writer(f)
        for row in datas:
            writer.writerow(row)
    print('生成模拟表')
 
# 将组信息csv文件转换为2列状的csv文件
def from_csv_to_2col_csv(filename):
    # 读入csv文件转换出组信息列表
    with open(filename) as f:
        reader = csv.reader(f)
        groups = list(reader)
    # 对每一行组信息数据进行操作
    new_datas = [['组名', '组员']]
    # 遍历每一组
    for group in groups[1:]:
        # 遍历每个成员
        for member in group[1:]:
            # 组成对应关系
            new_row_data = []
            new_row_data.append(group[0])
            new_row_data.append(member)
            new_datas.append(new_row_data)
    print('转换来的数据')
    print(new_datas)
    with open('new_groups.csv', 'w', newline='') as f:
        writer = csv.writer(f)
        for row in new_datas:
            writer.writerow(row)
    print('生成目标表')
 
if __name__ == '__main__':
    filename = 'groups.csv'
    gen_csv(filename)
    from_csv_to_2col_csv(filename)


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...