Python 用均匀分布的值填充CSV

Python 用均匀分布的值填充CSV,python,performance,csv,Python,Performance,Csv,我想编写一个python脚本,根据列填充CSV文件,并且每列都有一个只能在列中的字符串的预设列表 示例: 对于“name”列,唯一可能的值是“Andrew”、“James”、“Steve”、“Charlie”等。以类似的方式,其他每一列都有一个可能值的预设列表 我希望尽可能以最均匀的分布填充CSV,以便有不同列值组合的行 问题: 我应该使用列表并随机选择值吗 会不会造成裁员 有没有更好的方法 以下内容将帮助您开始: import csv import random with open('out

我想编写一个python脚本,根据列填充CSV文件,并且每列都有一个只能在列中的字符串的预设列表

示例

对于“name”列,唯一可能的值是“Andrew”、“James”、“Steve”、“Charlie”等。以类似的方式,其他每一列都有一个可能值的预设列表

我希望尽可能以最均匀的分布填充CSV,以便有不同列值组合的行

问题:

  • 我应该使用列表并随机选择值吗
  • 会不会造成裁员
  • 有没有更好的方法

  • 以下内容将帮助您开始:

    import csv
    import random
    
    with open('output.csv', 'w', newline='') as f_output:
        csv_output = csv.writer(f_output)
        csv_output.writerow(["Name", "Age"])
    
        names = ["Andrew", "Steve", "Charlie"]
    
        for _ in range(10):     # Create 10 entries
            name = random.choice(names)
            age = random.randint(20, 50)
    
            csv_output.writerow([name, age])
    
    为您提供示例输出,例如:

    姓名、年龄
    安德鲁,50岁
    史蒂夫,37岁
    查理,34岁
    安德鲁,47岁
    安德鲁,28岁
    安德鲁,27岁
    查理,29岁
    查理,49岁
    史蒂夫,42岁
    查理,38岁
    
    你所说的“冗余”是什么意思?如果你说的是重复的,那么,如果名称列表是有限的,那么要生成的值的数量大于名称的数量,这肯定会有重复的条目。听起来像是伪造者的工作:这正是为了制作诸如姓名或地址之类的假数据,甚至可以根据需要定制。您可以使用
    random
    库中的
    random.choice(),我还使用了faker来获取一些数据。