【发布时间】:2021-01-13 10:49:14
【问题描述】:
我创建了一个 OrderedDict:
from collections import OrderedDict
od = OrderedDict([((2, 9), 0.5218),
((2, 0), 0.3647),
((3, 15), 0.3640),
((3, 8), 0.3323),
((2, 28), 0.3310),
((2, 15), 0.3281),
((2, 10), 0.2938),
((3, 9), 0.2719)])
然后我将它输入到 pandas DataFrame 构造函数中:
import pandas as pd
df = pd.DataFrame({'values': od})
结果是这样的:
它应该给出这个:
我不明白这里发生了什么?
P.S.:我不是在寻找解决问题的替代方法(尽管如果您认为它会对社区有所帮助,欢迎您发布它)。我只想了解为什么这里不起作用。这是一个错误,还是有一些逻辑? 这也不是这个link 的副本,因为我专门使用的是 OrderedDict 而不是普通的字典。
【问题讨论】:
-
阅读源代码,init_dict 不会修改传递的数组的顺序,在许多其他不适用于您的情况的检查中,它会从字典键中提取列名。然后构造函数调用NDFrame.__init__,如果它可以帮助任何想要从那时起进行研究的人。
标签: python pandas dataframe ordereddict