【问题标题】:How to save a list as a .csv file with python with new lines?如何使用带有新行的python将列表保存为.csv文件?
【发布时间】: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])

标签: python list python-2.7 csv pandas


【解决方案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)

    【讨论】:

      猜你喜欢
      • 2018-06-09
      • 2021-09-28
      • 2021-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-18
      • 2016-08-19
      相关资源
      最近更新 更多