我有一个熊猫系列sf:
email
email1@email.com [1.0, 0.0, 0.0]
email2@email.com [2.0, 0.0, 0.0]
email3@email.com [1.0, 0.0, 0.0]
email4@email.com [4.0, 0.0, 0.0]
email5@email.com [1.0, 0.0, 3.0]
email6@email.com [1.0, 5.0, 0.0]
我想将其转换为以下数据帧:
index | email | list
_____________________________________________
0 | email1@email.com | [1.0, 0.0, 0.0]
1 | email2@email.com | [2.0, 0.0, 0.0]
2 | email3@email.com | [1.0, 0.0, 0.0]
3 | email4@email.com | [4.0, 0.0, 0.0]
4 | email5@email.com | [1.0, 0.0, 3.0]
5 | email6@email.com | [1.0, 5.0, 0.0]
我找到了一种方法,但我怀疑它是否更有效:
df1 = pd.DataFrame(data=sf.index, columns=['email'])
df2 = pd.DataFrame(data=sf.values, columns=['list'])
df = pd.merge(df1, df2, left_index=True, right_index=True)
到框架():
从以下系列开始,df:
我使用to_frame将序列转换为数据帧:
现在您只需要重命名列名并命名索引列:
您的数据帧已准备好进行进一步分析。
更新:我刚刚遇到this link这里的答案与我的答案惊人地相似。
一行的答案是
您可以使用DataFrame构造函数在dict中将这些作为参数传递,而不是创建2个临时df:
有很多方法可以构造df,请参见docs
相关问题 更多 >
编程相关推荐