如何使用带有新行的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

python列表到csv文件,每个项目都在新行中

如何将数据作为列写入熊猫

如何使用 fast-csv npm 将新行或新行的数据(新行)附加到现有的 csv 文件

如何将列表转换为每行 N 项的 CSV 文件?

将列表转换为数据框时如何使用“换行”命令?