使用python将多行列表写入csv文件

2024-04-29 18:45:32 发布

您现在位置:Python中文网/ 问答频道 /正文

如何将以下列表拆分为多行(3行)并使用python写入csv文件。在

holidays = ['2017-01-01', "New Year's Day", 'NSW', '2017-01-02', "New Year's Day (Observed)", 'NSW', '2017-01-26', 'Australia Day', 'NSW', '2017-04-14', 'Good Friday', 'NSW', '2017-04-15', 'Easter Saturday', 'NSW']

下面的代码将所有值写入csv中的单个列。在

^{pr2}$

Tags: 文件csv代码列表newholidaysyeargood
3条回答

下面是一个详细的示例,展示了列表解释的工作原理:

with open('outfile.csv', 'w') as outfile:
    writer = csv.writer(outfile)
    rows = [[holiday, holidays[i+1], holidays[i+2]] for i, holiday in enumerate(holidays) if i % 3 == 0]
    for row in rows:
        writer.writerow(row)

可以使用列表切片将列表分为3块:

with open(fileName, "w") as output:
    writer = csv.writer(output, lineterminator='\n')
    for i in range(0, len(lst), 3)):
        writer.writerow(lst[i:i+3])

使用pandas的解决方案

import pandas as pd

holidays = ['2017-01-01', "New Year's Day", 'NSW', '2017-01-02', "New Year's Day (Observed)", 'NSW', '2017-01-26', 'Australia Day', 'NSW', '2017-04-14', 'Good Friday', 'NSW', '2017-04-15', 'Easter Saturday', 'NSW']
col_titles = ('date', 'name','state')

data = pd.np.array(holidays).reshape((len(holidays) // 3, 3))

pd.DataFrame(data, columns=col_titles).to_csv("holidays.csv", index=False)

其中:

  1. pd.np.array(holidays)holidays转换为numpy.array
  2. .reshape((len(holidays) // 3, 3))将数组的结构更改为三个“列”
  3. pd.DataFrame(data, columns=col_titles)根据数据和列标题创建pandas.Dataframe
  4. .to_csv("holidays.csv", index=False)将数据帧保存到CSV文件中

holidays.csv的内容:

^{pr2}$

请注意,如果在to_csv中使用index=False,则不会包括索引。在

相关问题 更多 >