gpt4 book ai didi

python - 使用三元图的元组键将 Pandas 数据框转换为字典

转载 作者:行者123 更新时间:2023-11-30 22:14:33 25 4
gpt4 key购买 nike

我正在用 python-ternary 绘制三元图

我的数据位于 pandas 数据框中。我需要将其转换为字典,将 (i, j) 映射为 float ,作为三元中的 heatmap 函数的输入。

我的数据框(df)如下所示:

   i  j  value
0 1 2 7
1 3 4 8
2 5 6 9

我需要制作一本这样的字典:

{(1, 2): 7, (5, 6): 9, (3, 4): 8}

我当前的解决方法是非常慢的强力循环:

import pandas as pd
df = pd.DataFrame({'i': [1, 3, 5], 'j': [2, 4, 6], 'value': [7, 8, 9]})
data = dict()

for k in range(0, len(df)):
data[(df.iloc[k]['i'],df.iloc[k]['j'])] = \
df.iloc[k]['value']

请问有人可以帮助我用更快或更Pythonic的方式来做到这一点吗?

最佳答案

使用set_indexto_dict :

d = df.set_index(['i','j'])['value'].to_dict()

替代zip字典理解:

d = {(a,b):c for a,b,c in zip(df['i'], df['j'], df['value'])}
<小时/>
print (d)
{(1, 2): 7, (3, 4): 8, (5, 6): 9}

关于python - 使用三元图的元组键将 Pandas 数据框转换为字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50485754/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com