简体   繁体   English

Python:从两个列表中制作一个csv

[英]Python: making a csv out of two lists

Lets suppose that I have two lists: 假设我有两个列表:

users = [ user1, user2, user3, ...]
codes = [ code1, code2, code3, ...]

And I want to create a csv where I assign a code to each user like this: 我想创建一个csv,在其中我为每个用户分配一个代码,如下所示:

users, codes
user1, code1
user2, code2 

I have been trying for days and I can't find a solution. 我已经尝试了好几天,但找不到解决方案。 I've tried to extend the list, but it doesn't work the way it supposed to. 我试图扩展该列表,但是它不能按预期的方式工作。 Thanks for 感谢

Use zip with csv module zipcsv模块一起使用

Ex: 例如:

import csv    

users = [ 'user1', 'user2', 'user3']
codes = [ 'code1', 'code2', 'code3']

with open(filename, "w") as infile:
    writer = csv.writer(infile)
    writer.writerow(["users", "codes"])    #Write Header
    for i in zip(users, codes):
        writer.writerow(i)                 #Write Content

that is a fairly common thing to do. 这是很常见的事情。 Look into the module pandas , as @Denziloe pointed out or use csv.writer : 查看@Denziloe指出的pandas模块,或使用csv.writer

import csv
with open("my_csv", "w") as f:
   writer = csv.writer(f)
   writer.writerow(["user", "code"])
   for a, b in zip(users, codes):
       writer.writerow([a, b])

You can use pandas to store this information in a dataframe and then use df.to_csv() : 您可以使用pandas将这些信息存储在数据df.to_csv() ,然后使用df.to_csv()

import pandas as pd

users = ['user1', 'user2', 'user3']
codes = ['code1', 'code2', 'code3']

pairs = {'Users': users, 'Codes': codes}

df = pd.DataFrame.from_dict(pairs)

df.to_csv('mycsv.csv')

If you use this code, no imports needed: 如果使用此代码,则无需导入:

users = [ 'user1', 'user2', 'user3']
codes = [ 'code1', 'code2', 'code3']

with open('solution.csv', 'w') as f:
    f.write('users,codes\n')
    for user, code in zip(users, codes):
        f.write('{},{}\n'.format(user, code))

It will create you a file like this one: 它将为您创建一个像这样的文件:

users,codes
user1,code1
user2,code2
user3,code3

worked for me (from https://docs.python.org/2/library/csv.html ) 为我工作(来自https://docs.python.org/2/library/csv.html

  users = ['user1', 'user2', 'user3'] codes = ['code1', 'code2', 'code3'] with open('output.csv', 'wb') as csvFile: fieldnames = ['USER', 'CODE'] output = csv.DictWriter(csvFile, fieldnames=fieldnames) output.writeheader() for index, user in enumerate(users): output.writerow({'USER': user, 'CODE': codes[index]}) 

I got: 我有:

在此处输入图片说明

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM