python – Pandas – 将两列作为字典转换为新列
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – Pandas – 将两列作为字典转换为新列,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1272字,纯文字阅读大概需要2分钟。
内容图文
![python – Pandas – 将两列作为字典转换为新列](/upload/InfoBanner/zyjiaocheng/734/9729d1d399d642bfb69fa13de3b9d3bd.jpg)
我正在尝试使用Pandas将两列转换为一列,该列是两个转换列的字典表示.
df = DataFrame({'Metrics' : [[("P", "P"), ("Q","Q")], ("K", "K"), ("Z", "Z")],
'Stage_Name' : ["P", "K", "Z"],
'Block_Name' : ["A", "B", "A"]})
基本上我想合并Metrics和Stage_Name:
进入另一个名为merged的列,例如,第一行将是:
{'P': [('P', 'P'), ('Q', 'Q')]}
我知道如何将一行转换为字典表示,但是,我不知道如何在没有for循环的情况下对所有行执行此操作:
something = df.iloc[[0]].set_index('Stage_Name')['Metrics'].to_dict()
print something
Output: {'P': [('P', 'P'), ('Q', 'Q')]}
稍后我想基于Block_Name进行聚合,因此对于合并列,结果将是为Block_Name添加的两个词典:A.
{'P': [('P', 'P'), ('Q', 'Q')], 'Z' : [('Z', 'Z')] }
对于Stage_Name和Metrics,我只是将它附加到列表中,如下所示:
grouped = df.groupby(df['Block_Name'])
df_2 = grouped.aggregate(lambda x: tuple(x))
有人能指出我正确的方向吗?谢谢!
解决方法:
正确的IIUC然后你使用lambda:
In [19]:
df['merged'] = df.apply(lambda row: {row['Stage_Name']:row['Metrics']}, axis=1)
df
Out[19]:
Block_Name Metrics Stage_Name merged
0 A [(P, P), (Q, Q)] P {'P': [('P', 'P'), ('Q', 'Q')]}
1 B (K, K) K {'K': ('K', 'K')}
2 A (Z, Z) Z {'Z': ('Z', 'Z')}
内容总结
以上是互联网集市为您收集整理的python – Pandas – 将两列作为字典转换为新列全部内容,希望文章能够帮你解决python – Pandas – 将两列作为字典转换为新列所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。