【问题标题】:Adding a list as new column to csv file将列表作为新列添加到 csv 文件
【发布时间】:2020-01-04 06:34:20
【问题描述】:

我有一个项目列表,我想将它作为新列写入我现有的 csv 中。

mylist=['in','out','out','in']

with open('my.csv','w') as file:
   writer = csv.writer(file, lineterminator='\n')
   writer.writerows(mylist)


first_column       2nd_col
=====               ====
AMPHENOL           AMPHENOL

AMPHENOL           MOLEX
NEXANS             MOLEX
                   NEXANS
AMPHENOL
RS

RS

MPHENOL

这就是我实际拥有的,同样,每次迭代都会有更多行数不同的列。我想要的是截图====只是为了演示。

Screenshot of output

【问题讨论】:

  • 展示你的尝试

标签: python csv append


【解决方案1】:
s = '''rizwan,10
arsalan,30
ali,40
suffiyan,60'''
s = s.split('\n')
mylist=['in','out','out','in']
for i, v in enumerate(mylist):
    s[i] += ',' + v
print('\n'.join(s))

输出

rizwan,10,in
arsalan,30,out
ali,40,out
suffiyan,60,in

在您的情况下,您需要读取文件并写入文件。

with open('test.csv', 'r') as file:
    s = file.read()
s = s.split('\n')
mylist=['in','out','out','in']
for i, v in enumerate(mylist):
    s[i+2] += ',' + v
with open('test.csv', 'w') as file:
    file.write('\n'.join(s))

【讨论】:

  • 如果 csv 中的列在每次循环迭代中都没有变化,那么 s[i+2] 是什么
  • @tayyabmahboob s[i+2] 是为了确保元素将被归档在正确的行中。
  • @tayyabmahboob 我认为mycsv 在您的csv 文件中,如果不是,请改用s[i+1]
【解决方案2】:

pandas 库非常适合:

In [274]: mylist=['in','out','out','in']                                                                        

In [275]: df = pd.read_csv('my.csv', sep=',', header=None)                                                          

In [276]: df['new_col'] = mylist                                                                                

In [277]: df.to_csv('my.csv', sep=',', index=None, header=False)   

最终的csv文件内容:

rizwan,10,in
arsalan,30,out
ali,40,out
suffiyan,60,in

【讨论】:

  • 在这种情况下,每列的行数应该相等。否则会引发错误。在我的情况下,行数不同。上面的 csv 只是一个例子
  • @tayyabmahboob,因此请使用适当的示例和条件正确更新您的问题 - 我们不是在这里猜测
  • ,现在在上述情况下你有什么建议
  • @tayyabmahboob,以正确的格式发布实际输出 - 目前尚不清楚您的 ===== 是真实内容还是只是您的演示标志
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-10-30
  • 1970-01-01
  • 1970-01-01
  • 2020-07-18
  • 1970-01-01
  • 1970-01-01
  • 2017-06-22
相关资源
最近更新 更多