【发布时间】:2018-07-26 08:20:35
【问题描述】:
假设我有以下数据框:
x = pd.DataFrame({'a':['x, y', 'x, t, x, r', 'y, t'],
'b':[1, 0, 1]})
a b
0 x, y 1
1 x, t, x, r 0
2 y, t 1
我想去
letter num
0 x 1
1 y 1
2 x 0
3 t 0
4 x 0
5 r 0
6 y 1
7 t 1
我已经通过以下方式解决了这个问题,但我觉得我让它变得比它需要的更复杂。
x.a = x.a.str.split(",")
empty = []
for b, a in zip(x.b, x.a):
empty.append([b] * len(a))
t = [item for sublist in empty for item in sublist]
y = [item for sublist in x.a for item in sublist]
pd.DataFrame({'letter':t, 'num':y})
letter num
0 1 x
1 1 y
2 0 x
3 0 t
4 0 x
5 0 r
6 1 y
7 1 t
有没有更好的方法来解决这个问题?
【问题讨论】: