将列表写入csv中的特定列

时间:2016-05-18 17:15:01

标签: python csv

我尝试将数据从list写入第4列

namelist = ['PEAR']

for name in namelist:
    for man_year in yearlist:
        for man_month in monthlist:
            with open('{2}\{0}\{1}.csv'.format(man_year,man_month,name),'w') as filename:
                writer = csv.writer(filename)
                writer.writerow(name)
                time.sleep(0.01)

它输出到像这样的csv

P             E                 A                R

4015854     234342            2442343            234242

我怎样才能让它继续第4列?

                                                        PEAR

4015854     234342                2442343              234242

3 个答案:

答案 0 :(得分:1)

将行writer.writerow(name)替换为

writer.writerow(['', '', '', name])

答案 1 :(得分:1)

当您将name传递给csvwriter时,它会将该名称视为可迭代的,并在列中写下每个字符。

因此,为了解决这个问题,请更改以下行:

writer.writerow(name)

使用:

writer.writerow([''] * (len(other_row)-1) + [name])

此处other_row可以是其余行之一,但如果您确定长度,则可以执行以下操作:

writer.writerow([''] * (length-1) + [name])

答案 2 :(得分:1)

您可以使用df.at而不是在不想触摸的单元格上写入''。例如,您可以编写df.at [index,ColumnName] = 10,它将仅更改该特定单元格的值。

您可以在此处了解更多信息:Set value for particular cell in pandas DataFrame using index

相关问题