当我将此数据帧转换为字典时,为啥索引设置不正确?

Posted

技术标签:

【中文标题】当我将此数据帧转换为字典时,为啥索引设置不正确?【英文标题】:Why isn't index setting correctly when I convert this dataframe to dictionary?当我将此数据帧转换为字典时,为什么索引设置不正确? 【发布时间】:2020-12-11 08:42:39 【问题描述】:

如果有人能指出我正确的方向,我将不胜感激。我正在尝试将熊猫数据框转换为字典并使用索引作为键。行中的值将是字典的值,但我无法正确设置索引。我需要字典格式,因为它是其他需要能够有效查找值的一部分。

#result from confidence intervals
conf_it = results.conf_int(alpha = 0.05)
conf_it = pd.DataFrame(conf_it)

#print output    
print(conf_it)

          0    1
panda     10   15
cat       7    9
dog       8    17


#rename and select relevant columns
conf_it = conf_it.rename(columns = 0: "lower", 1: "upper")
LowPredictedImpact = conf_it[['lower']]

#convert dataframes into dictionaries
q = LowPredictedImpact.to_dict('index')

#Output
 list(q.items())

[('panda', 'lower': 10),
 ('cat' , 'lower': 7),
 ('dog', 'lower': 8)]

The output I need:

    [('panda', 10),
     ('cat' , 7),
     ('dog', 8)]

Other acceptable alternative output: 
 [('panda': 10),
     ('cat': 7),
     ('dog': 8)]

If someone could please point me in the right direction I would be very grateful. 

【问题讨论】:

这能回答你的问题吗? Pandas convert dataframe to array of tuples 【参考方案1】:

您不需要将数据框转换为字典。这可以简单地通过创建一个具有所需值作为元组的新列,然后将该列值提取到一个列表中来实现。

In [52]: df                                                                                                                                                                       
Out[52]: 
       lower  upper
key                
panda     10     15
dog        7      9
cat        8     17

In [53]: df.reset_index(inplace=True)                                                                                                                                             

In [54]: df['tuple'] = list(zip(df.key,df.lower))                                                                                                                                 

In [55]: df                                                                                                                                                                       
Out[55]: 
     key  lower  upper        tuple
0  panda     10     15  (panda, 10)
1    dog      7      9     (dog, 7)
2    cat      8     17     (cat, 8)

In [56]: final_output = df['tuple'].to_list()                                                                                                                                     

In [57]: final_output                                                                                                                                                             
Out[57]: [('panda', 10), ('dog', 7), ('cat', 8)]


【讨论】:

您好,谢谢您的回复。但是,我需要创建字典,因为它是为了从其他东西中查找值。 示例输出与答案中的输出相似。

以上是关于当我将此数据帧转换为字典时,为啥索引设置不正确?的主要内容,如果未能解决你的问题,请参考以下文章

如何将从 csv 文件中读取的数据帧打印成字典格式?

为啥当我将 Meteor 应用程序转换为使用 Docker 时,我的 MongoDB 数据会消失?

将具有嵌套结构的 MATLAB 文件转换为数据帧字典

绘制转置数据帧-如何访问第一列? [重复]

当我用关键帧制作另一个动画时,为啥我不能为 scali 设置动画?

标签显示不正确