Python 3.x 使用列中的字符串值向dataframe添加行
我想根据每行的列值将行添加到数据框中,因此1:2:3的字符串值将创建一个新列并为该列添加行,如下例所述: 我有这样的数据:Python 3.x 使用列中的字符串值向dataframe添加行,python-3.x,pandas,Python 3.x,Pandas,我想根据每行的列值将行添加到数据框中,因此1:2:3的字符串值将创建一个新列并为该列添加行,如下例所述: 我有这样的数据: Col1 | Col2 1 | 1:2:3 2 | 4:5 我想将其转换为如下所示: Col1 | Col2 1 | 1 1 | 2 1 | 3 2 | 4 2 | 5 我知道这可以使用嵌套for循环来完成,但我确信有更好的方法来完成。进行拆分和分解 不要分裂和爆炸 拆分Col2中的值,使其成为列表并分解 >>
Col1 | Col2
1 | 1:2:3
2 | 4:5
我想将其转换为如下所示:
Col1 | Col2
1 | 1
1 | 2
1 | 3
2 | 4
2 | 5
我知道这可以使用嵌套for循环来完成,但我确信有更好的方法来完成。进行拆分和分解
不要分裂和爆炸
拆分Col2中的值,使其成为列表并分解
>>> df['Col2'] = df.apply(lambda x: x['Col2'].split(':'), axis = 1)
>>> df.explode('Col2')
Col1 Col2
0 1 1
0 1 2
0 1 3
1 2 4
1 2 5
拆分Col2中的值,使其成为列表并分解
>>> df['Col2'] = df.apply(lambda x: x['Col2'].split(':'), axis = 1)
>>> df.explode('Col2')
Col1 Col2
0 1 1
0 1 2
0 1 3
1 2 4
1 2 5
我得到了相同的:+1我得到了相同的:+1谢谢,我不知道这个爆炸函数。我使用的是pandas 0.23,所以一开始对我不起作用。最低版本是熊猫0.25。谢谢,我不知道这个爆炸功能。我使用的是pandas 0.23,所以一开始对我不起作用。最低版本为0.25。
>>> df['Col2'] = df.apply(lambda x: x['Col2'].split(':'), axis = 1)
>>> df.explode('Col2')
Col1 Col2
0 1 1
0 1 2
0 1 3
1 2 4
1 2 5