如何使用带有新行的python将列表保存为.csv文件?
Posted
技术标签:
【中文标题】如何使用带有新行的python将列表保存为.csv文件?【英文标题】:How to save a list as a .csv file with python with new lines? 【发布时间】:2015-06-01 09:04:07 【问题描述】:我想将 python 列表保存在 .csv
文件中,例如我有一个这样的列表:
['hello','how','are','you']
我想这样保存:
colummn,
hello,
how,
are,
you,
我尝试了以下方法:
myfile = open('/Users/user/Projects/list.csv', 'wb')
wr = csv.writer(myfile, quoting=csv.QUOTE_ALL,'\n')
wr.writerow(pos_score)
【问题讨论】:
你想为列表中的每个元素写一个新行吗? 感谢提要,是的,我想为列表中的每个元素添加新行。 @cmidi 你为什么要添加尾随逗号?for score in pos_score: wr.writerow([score])
只需遍历列表并将行写入csv每次for i,it in enumerate(list):
wr.writerow([it])
【参考方案1】:
使用熊猫to_csv
(http://pandas.pydata.org/pandas-docs/dev/generated/pandas.DataFrame.to_csv.html)
>>> import pandas as pd
>>> df = pd.DataFrame(some_list, columns=["colummn"])
>>> df.to_csv('list.csv', index=False)
【讨论】:
感谢您的帮助。如何在每个单词的末尾添加,
?你认为我在阅读这种列表时会遇到问题,因为 pandas 因为是 .csv 文件?
不,pandas 可以很好地处理 csv。只需使用它的方法 read_csv。如果你真的需要 ',' 在行尾,运行: df['colummn'] = df['colummn'].map(lambda x: x+",") 但是 csv 格式不假设文件有 ', ' 在行尾,仅在列之间。在单词之后添加“,”意味着有第二列(在您的情况下不是这样)。【参考方案2】:
如果你想要不同行的所有单词,你需要将分隔符设置为\n
:
l = ['hello','how','are','you']
import csv
with open("out.csv","w") as f:
wr = csv.writer(f,delimiter="\n")
wr.writerow(l)
输出:
hello
how
are
you
如果你想要一个尾随逗号:
with open("out.csv","w") as f:
wr = csv.writer(f,delimiter="\n")
for ele in l:
wr.writerow([ele+","])
输出:
hello,
how,
are,
you,
我建议只写没有尾随逗号的元素,尾随逗号没有好处,但很可能会在以后给您带来问题。
【讨论】:
如果你想要一个尾随逗号,将分隔符设置为delimiter=',\n'
并且你不需要额外的for循环不是吗?【参考方案3】:
您可以将其作为键为 'column' 的 dict 的值传递给 DataFrame 构造函数,然后在 df 上调用 to_csv
:
In [43]:
df = pd.DataFrame('column':['hello','how','are','you'])
df
Out[43]:
column
0 hello
1 how
2 are
3 you
In [44]:
df.to_csv()
Out[44]:
',column\n0,hello\n1,how\n2,are\n3,you\n'
【讨论】:
【参考方案4】:从现有数据中选择 120 个值
randss = np.random.choice(dsmodx.logss, 120, replace=False) # 120 表示 120 值 打印(randss)
使用从 dsmodx.logss 数据集中选择的 120 个数据创建新数据框
randssdf = pd.DataFrame(randss, columns=["Log Ss"]) 将数据保存为excel randssdf.to_excel ('randomSs.xlsx' , index = False)
【讨论】:
以上是关于如何使用带有新行的python将列表保存为.csv文件?的主要内容,如果未能解决你的问题,请参考以下文章
Python - 将 For Loop 项目作为新行写入 CSV