我有一个包含3列的pandas数据框。
这是它的样子:
User History New
101 [X,Y,Z] [A-0,B-1]
102 [Q,M,N] [A-1,B-0]
我想修改我的数据框以这种方式表示:
User History New 0or1
101 [X,Y,Z] A 0
101 [X,Y,Z] B 1
102 [Q,M,N] A 1
102 [Q,M,N] B 0
我该怎么办?
基本上,我这样做的原因是因为我正在尝试创建一个模型,该模型根据历史记录来预测new中每个元素的0或1。 因此,我认为以这种方式拆分它们对于根据三列训练模型是有意义的。
尽管我一直在寻找如上所述的分割数据框的方法,但是如果有任何其他有效的方法可以使用所提供的数据(第一个表)来创建一个模型来预测每个元素的1或0,我愿意提出建议在相应历史记录的“新”数组中。
谢谢。
答案 0 :(得分:1)
import pandas as pd
df1 = df.explode('New')
pd.concat([df1,df1.New.str.split('-', expand = True)],axis=1)
User History New 0 1
0 101 [X, Y, Z] A-0 A 0
0 101 [X, Y, Z] B-1 B 1
1 102 [Q, M, N] A-1 A 1
1 102 [Q, M, N] B-0 B 0