[英]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 将
zip
与csv
模块一起使用
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.