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
  • 34,399
  • 18
  • 41
  • 57
alex smolyakov
  • 198
  • 2
  • 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
  • 194,879
  • 13
  • 39
  • 75