Python实现将两个完整列表写入CSV文件的不同列
嗨,我来帮你搞定这个CSV导出的问题!你想要的是把整个列表作为单个单元格的内容,但之前的两种方法都没get到这个点——csv模块用zip会把两个列表的对应元素配对成多行,pandas直接转列表又把每个列表当成了一行数据,所以结果都不符合预期。
下面给你两种正确的实现方式:
方法一:使用csv模块
直接把两个列表转成字符串,作为一行的两个单元格写入,同时加上表头:
import csv a = [1,3,5,6,7,12] b = [23,45,67,67] with open('sample_dataset.csv', 'w', encoding='utf-16', newline='') as outfile: writer = csv.writer(outfile) # 先写入表头行 writer.writerow(['Item', 'Quantity']) # 将两个列表转为字符串,作为同一行的两个单元格 writer.writerow([str(a), str(b)])
方法二:使用pandas
通过字典构造DataFrame,让每个列表对应一列的单个单元格:
import pandas as pd a = [1,3,5,6,7,12] b = [23,45,67,67] # 用字典定义列名和对应的值(每个值是包含列表的单元素列表,确保整个列表作为一个单元格) my_df = pd.DataFrame({ 'Item': [a], 'Quantity': [b] }) # 导出CSV,去掉索引 my_df.to_csv('sample_dataset.csv', index=False)
导出后的CSV内容会和你预期的一致:
Item,Quantity [1, 3, 5, 6, 7, 12],[23, 45, 67, 67]
如果不想让列表里有空格,可以在转字符串时处理一下,比如用str(a).replace(' ', '')代替str(a)。
内容的提问来源于stack exchange,提问作者Kavita
相关产品推荐
相关产品推荐

