热线电话:13121318867

登录
2019-03-14 阅读量: 781
将一个对象数组转换为一个没有循环的数据帧

这是我原来的数据框架。每一行都有一封电子邮件和一份地址列表(只有街道可以举例说明)。

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'

在pandas中有更好的方法而不是遍历数组来创建最后一个数据帧吗?

解决办法:您可以使用:

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

0.0000
0
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子