I have df with three columns:
- Col 0 – sentence row num
- Col 1 – Sentence converted to list
- Col 2 – list of annotations
Col 0 | Col1 | Col2 |
---|---|---|
1 | [This, is, sentence] | [l1, l2, l3] |
2 | [This, is, sentence, too] | [l1, l2, l3, l4] |
I would like to convert Col1 and Col2 and move each row and its respective annotation to separate row:
Col 0 | Col1 | Col2 |
---|---|---|
1 | This | l1 |
1 | is | l2 |
1 | sentence | l3 |
2 | This | l1 |
2 | is | l2 |
2 | sentence | l3 |
2 | too | l4 |
When I use explode
on each column separately one of the columns always does not change.
JavaScript
x
2
1
data2['Col1_exploded'] = (data['Col1'].explode('Col1'))
2
And this option does not work too:
JavaScript
1
2
1
data2[['Col1_exploded', 'Col2_exploded']] = (data[['Col1', 'Col2']].explode('Col1', 'Col2'))
2
Advertisement
Answer
You can pass list of column names to explode
:
JavaScript
1
11
11
1
>>> df.explode(['Col1', 'Col2'])
2
3
Col 0 Col1 Col2
4
0 1 This l1
5
0 1 is l2
6
0 1 sentence l3
7
1 2 This l1
8
1 2 is l2
9
1 2 sentence l3
10
1 2 too l4
11