将多个Python列表转换为CSV列
我的目标是将一系列列表写入csv,其中每个列表都是一列 这是我目前的代码:将多个Python列表转换为CSV列,python,csv,Python,Csv,我的目标是将一系列列表写入csv,其中每个列表都是一列 这是我目前的代码: rows = list(zip(columns['phase'],columns['start_date'])) with open('date_update.csv','w') as f: writer = csv.writer(f) for row in rows: writer.writerows(row); 。两个列表的长度相同。当我打印行时,它的开头有一个额外的“”),“。但
rows = list(zip(columns['phase'],columns['start_date']))
with open('date_update.csv','w') as f:
writer = csv.writer(f)
for row in rows:
writer.writerows(row);
。两个列表的长度相同。当我打印行时,它的开头有一个额外的“”),“。但当您打印这两个列表时(列['phase']和列['start\u date'])不会出现这种情况
拉链有什么问题吗?还是我没有正确地将其写入csv文件?您可以使用
pd.DataFrame
将其保存到csv文件中。例如:
import pandas as pd
columns = {}
columns['phase'] = ['Phase 1','Phase 2', 'Phase 3','Phase 4']
columns['start_date'] = ['August 24 September','August 24 September',
'August 24 September', 'August 24 September']
data = list(zip(columns['phase'],columns['start_date']))
df = pd.DataFrame(data = data)
df.to_csv('date_update.csv', index=False, header=False)
将在文件“date_update.csv”中保存以下数据:
第一阶段,8月24日至9月24日第二阶段,8月24日至9月24日
第三阶段,8月24日至9月24日
第四阶段,8月24日至9月24日
for row in rows:
writer.writerow(row)
或:
注意单数和复数形式的使用writerows
需要一系列序列。字符串是一个序列,因此通过传递字符串列表,可以将字符串用作列序列,并在单独的列中列出每个字符
另外,根据,使用以下任一项打开传递给csv.writer
的文件:
with open('date_update.csv','wb') as f: # Python 2
with open('date_update.csv','w',newline='') as f: # Python 3
完整示例:
#!python3
import csv
columns = {}
columns['phase'] = ['Phase 1','Phase 2', 'Phase 3','Phase 4']
columns['start_date'] = ['Aug 24, 2018','Sep 25, 2018','Jan 01, 2019','Feb 15, 2019']
rows = zip(columns['phase'],columns['start_date'])
with open('date_update.csv','w',newline='') as f:
writer = csv.writer(f)
writer.writerows(rows)
输出:
Phase 1,"Aug 24, 2018"
Phase 2,"Sep 25, 2018"
Phase 3,"Jan 01, 2019"
Phase 4,"Feb 15, 2019"
作为@mark tolonen所写内容的附录,您还可以使用内置csv模块中的DictWriter
with open('date_update.csv','a') as f:
writr = csv.DictWriter(f, fieldnames=["phase","start_date"])
# writr.write_header() # Use only if file is created by operation or is empty
writr.writerows([{"phase": c["phase"], "start_date": c["start_date"]} for c in columns])
请不要张贴图片。帮助指南更喜欢文本,因为它是可搜索和可剪切的。
with open('date_update.csv','a') as f:
writr = csv.DictWriter(f, fieldnames=["phase","start_date"])
# writr.write_header() # Use only if file is created by operation or is empty
writr.writerows([{"phase": c["phase"], "start_date": c["start_date"]} for c in columns])