Reputation: 133
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..
Upvotes: 1
Views: 1361
Reputation: 876
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']"
Upvotes: 5
Reputation: 73
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]) + ", ")
Upvotes: 0