这是我的原始数据框。每行都有一封电子邮件和一个地址列表(这里只是街道的代表)。
email addresses
somename@gmail.com [{'street': 'a'}, {'street': 'b'}]
anothername@gmail.com [{'street': 'c'}]
我希望得到这个结果:
email street
somename@gmail.com 'a'
somename@gmail.com 'b'
anothername@gmail.com 'c'
在熊猫中,有没有比遍历数组来创建最后一个数据帧更好的方法了?
答案 0 :(得分:1)
您可以使用:
df1=pd.DataFrame({'email':df.email.repeat(df.addresses.str.len()),\
'addresses':np.concatenate(df.addresses.values)})
df1['street']=df1.pop('addresses').apply(pd.Series)
print(df1)
email street
0 somename@gmail.com a
0 somename@gmail.com b
1 anothername@gmail.com c