- 有数据如下:
A B
0 1 [1, 2, 3]
1 2 [4, 5, 6]
希望变成
A B
0 1 1
0 1 2
0 1 3
1 2 4
1 2 5
1 2 6
代码:
>>> df=pd.DataFrame({"A":[1,2],"B":[[1,2,3],[4,5,6]]})
>>> df
A B
0 1 [1, 2, 3]
1 2 [4, 5, 6]
>>> pd.DataFrame({'A':df.A.repeat(df.B.str.len()),'B':np.concatenate(df.B.values)})
A B
0 1 1
0 1 2
0 1 3
1 2 4
1 2 5
1 2 6
- 有数据如下
A B
0 1 11,12,13
1 2 21,22,23
2 3 31,32,33
希望变成
index B
0 0 11
1 0 12
2 0 13
3 1 21
4 1 22
5 1 23
6 2 31
7 2 32
8 2 33
代码:
>>> df = pd.DataFrame({'A':[1,2,3],'B':['11,12,13','21,22,23','31,32,33']})
>>> df
A B
0 1 11,12,13
1 2 21,22,23
2 3 31,32,33
>>> df['B'].str.split(',', expand=True).stack().reset_index(level=1, drop=True).reset_index(name='B')
index B
0 0 11
1 0 12
2 0 13
3 1 21
4 1 22
5 1 23
6 2 31
7 2 32
8 2 33