问题描述
我有一个数据框,其中第一列Text
包含字符串列表,而其他两列(Label1
和Label2
)包含标签。数据框如下所示:
|Text |Label1 | Label2 |
-----------------------------------------
| ['text1','text2',| 0 | 0
'text3']
-----------------------------------------
| ['text4','text5',| 1 | 1
'text6']
-----------------------------------------
.... .. ..
现在,我想将这些字符串与列表分开,以便列表内的每个文本都使其单独的行保持其标签相同。例如,我的输出数据框应如下所示:
| Text |Label1 | Label2 |
-----------------------------------------
| text1 | 0 | 0 |
-----------------------------------------
| text2 | 0 | 0 |
-----------------------------------------
| text3 | 0 | 0 |
-----------------------------------------
| text4 | 1 | 1 |
-----------------------------------------
| text5 | 1 | 1 |
-----------------------------------------
| text6 | 1 | 1 |
-----------------------------------------
.... .. ..
我不确定该问题的标题是什么。但是我该如何使用熊猫解决这个问题。
解决方法
在数据框上使用.explode
。
df = pd.DataFrame({'Text' : [['text1','text2','text3'],['text4','text5','text6']],'Label1' : [0,1],'Label2' : [0,1]})
df_exploded = df.explode('Text') #explode on column 'Text'
结果:
Text Label1 Label2
0 text1 0 0
0 text2 0 0
0 text3 0 0
1 text4 1 1
1 text5 1 1
1 text6 1 1
,
我认为这是explode
:
df.explode('Text')