我有一个数据框,其中第一列是嵌套列表,第二列是数字。这是一个简化的示例:
Name Count
0 [A] NaN
1 [B] 20.0
2 [C, A] 50.0
3 [B, D, E] 15.0
如何转换此数据帧,以使第一列中的内部列表元素的值与第二列中的值配对?
我想要的结果应该是这样的-顺序和索引号并不重要,只要配对正确即可:
Name Count
0 A NaN
1 B 20.0
2 C 50.0
3 A 50.0
4 B 15.0
5 D 15.0
6 E 15.0
我的现实生活中的问题是在具有200,000行的数据帧上执行此操作,所以我想要一个有效的解决方案。
我尝试了此操作,但我认为它可行,但是我不确定我是否正确执行了操作。似乎可以与此处发布的示例数据一起使用。像这样进行迭代看起来也很难看。
test = pd.DataFrame(columns=['Name','Count'])
test['Name'] = [['A'],['B'],['C','A'],['B','D','E']]
test['Count'] = [np.NaN,20,50,15]
newdata = pd.DataFrame(columns=['Name','Count'])
a=[]
b=[]
for idx,sublist in enumerate(test['Name']):
a.extend(sublist)
for element in sublist:
b.append(test['Count'][idx])
newdata['Name'] = a
newdata['Count'] = b