简体   繁体   English

将列表作为新列添加到csv文件

[英]Adding a list as new column to csv file

I have a list of items and I want to write it in my existing csv as new column. 我有一个项目列表,我想将其作为新列写入现有的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

This is what I actually have,in the same there will me more cols with different no of rows on every iteration. 这是我实际拥有的,同样,在每次迭代中,我将有更多的cols具有不同的行数。 What I want is in the screenshot ==== is just for demonstration. 我想要的是截图====只是为了演示。

Screenshot of output 输出屏幕截图

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))

Output 输出量

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

In your case, you need to read your file and write to it. 就您而言,您需要读取文件并将其写入。

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))

pandas library is pretty good for that: 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)   

The final csv file contents: 最终的csv文件内容:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM