-1

I have the user input two lists, one for sizes one for minutes they are each stored in a list. For example they can input sizes: 111, 121 and for minutes, 5, 10, 15. I want to have the dataframe have columns that are named by the size and minute. (I did a for loop to extract each size and minute.) For example I want the columns to say 111,5 ; 111,10; 111;15, etc. I tried to do df[size+minute]=values (Values is data I want to input into each column) but instead the column name is just the values added up so I got the column name to be 116 instead of 111,5.

Monica
  • 5
  • 1
  • 5
  • 1
    Welcome to stack overflow! Unfortunately, your question is unclear. Please have a look at [How to make good pandas examples](https://stackoverflow.com/questions/20109391/how-to-make-good-reproducible-pandas-examples) and provide a [mcve] for your issue, including sample input, sample output, and code for what you've tried so far – G. Anderson Jan 31 '20 at 19:09

1 Answers1

0

If you have two lists:

l = [111,121]
l2 = [5,10,15]

Then you can use list comprehension to form your column names:

col_names = [str(x)+';'+str(y) for x in l for y in l2]
print(col_names)                                                       
['111;5', '111;10', '111;15', '121;5', '121;10', '121;15']

And create a dataframe with these column names using pandas.DataFrame:

df = pd.DataFrame(columns=col_names)

If we add a row of data:

row = pd.DataFrame([[1,2,3,4,5,6]])
row.columns = col_names
df = df.append(pd.DataFrame(row))

We can see that our dataframe looks like this:

print(df)                                                              
  111;5 111;10 111;15 121;5 121;10 121;15
0     1      2      3     4      5      6
dkhara
  • 695
  • 5
  • 18