当我将此数据帧转换为字典时,为啥索引设置不正确?
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)]
【讨论】:
您好,谢谢您的回复。但是,我需要创建字典,因为它是为了从其他东西中查找值。 示例输出与答案中的输出相似。以上是关于当我将此数据帧转换为字典时,为啥索引设置不正确?的主要内容,如果未能解决你的问题,请参考以下文章
为啥当我将 Meteor 应用程序转换为使用 Docker 时,我的 MongoDB 数据会消失?