简体   繁体   中英

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

I want to insert two columns in a new csv file. Question1 data should be in first column and Question2 data should be in second column

below given code gives me this output:

['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',]

Here is my code:

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)

the output should be like this: question1 should be in first column of csv and question 2 should be in second column of csv file

['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',]

Please help me how can I solve the problem..

You can use pandas for this.

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']"

So as I understand it the output you want is something like this: [question1 data], [question2 data] [question1 data], [question2 data] ...

In that case the following will get you there:

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]) + ", ")

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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