繁体   English   中英

如何使用python在CSV文件中插入两列?

[英]How to insert two columns in a CSV File using python?

我想在新的csv文件中插入两列。 Question1数据应在第一列中,而Question2数据应在第二列中

下面给出的代码给了我这个输出:

['question1']
['a','b','c','d']
['e','f','g']
['h','i','j','k','l']
['question2']
['a','b','c','d','x','y']
['e','f','g','m','n','o','p','q']
['h','i','j','k','l','r','s',]

这是我的代码:

col1=question1.split("\n")
col2=question2.split("\n")
with open("outputFile.csv" , mode="wt", encoding='UTF-8') as out_file:
     w=csv.writer(out_file)
     for row in col1:
         myColumns = row.split("\n")
         print(myColumns)
         w.writerow(myColumns)
     for row in col2:
         myColumns = row.split("\n")
         print(myColumns)
         w.writerow(myColumns)

输出应该是这样的:question1应该在csv的第一列中,而question 2应该在csv文件的第二列中

['question1']   ['question2']
['a','b','c','d']  ['a','b','c','d','x','y']
['e','f','g']  ['e','f','g','m','n','o','p','q']
['h','i','j','k','l']  ['h','i','j','k','l','r','s',]

请帮助我如何解决问题。

您可以为此使用pandas

import pandas as pd

question1 = [['1', '1'], ['1', '2', '3'], ['3', '4']]   #question 1 data
question2 = [['is', 'was'], ['i', 'am', 'me'],['yes', 'no']] #question 2 data

df = pd.DataFrame(columns=["question1", "question2"])
df["question1"] = question1
df["question2"] = question2

df.to_csv("output.csv", index=False)

output.csv

question1,question2
"['1', '1']","['is', 'was']"
"['1', '2', '3']","['i', 'am', 'me']"
"['3', '4']","['yes', 'no']"

因此,据我了解,您想要的输出是这样的:[question1数据],[question2数据] [question1数据],[question2数据] ...

在这种情况下,以下内容将带您前往:

first_column = [['a', 'b'], ['c', 'd', 'e'], ['f', 'g']]   #Populate this with your data from question 1
second_column = [['1', '2'], ['3', '4', '5']]              #Populate this with data from question 2


#Find the shortest and the longest of the lists
(shortest_list, lognest_list) =  (first_column, second_column) if len(first_column) < len(second_column) else (second_column,first_column)


#If the two colmns are guarenteed to be of the same length, then this loop is enough
for i in range(0,len(shortest_list)):
    print(str(first_column[i]) + ", " + str(second_column[i]))

#Handle that the who lists may not be of equal lengths
if len(shortest_list) != len(lognest_list):
    for i in range(len(shortest_list),  len(lognest_list)):
        print(str(lognest_list[i]) + ", ")

暂无
暂无

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

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