0
data = {'user_id': {2: 3, 3: 4, 4: 5},
 'Q1': {2: '1', 3: '8', 4: '2'},
 'Q2': {2: '4', 3: '3', 4: '2, 3, 4'},
 'Total Traffic(MB)': {2: 261.1186, 3: 179.18564, 4: 351.99208}}
pd.DataFrame(data)

how to split last row into 3 rows with same data but only one 'Q2' value per row ?

Henry Ecker
  • 31,792
  • 14
  • 29
  • 50
alex smolyakov
  • 118
  • 1
  • 8

1 Answers1

2

You can split and explode:

(df.assign(Q2=df['Q2'].str.split(', '))
   .explode('Q2')
)

output:

   user_id Q1 Q2  Total Traffic(MB)
2        3  1  4          261.11860
3        4  8  3          179.18564
4        5  2  2          351.99208
4        5  2  3          351.99208
4        5  2  4          351.99208

mozway
  • 81,317
  • 8
  • 19
  • 49