如何有效地将可变长度的嵌套列表转换为Pandas中的行

时间:2019-06-24 21:52:22

标签: python pandas

我有一个数据框,其中第一列是嵌套列表,第二列是数字。这是一个简化的示例:

    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

0 个答案:

没有答案