我知道我的问题有different种变体。但我希望我的在某些方面是不同的,不会被标记。使用Python2.7,熊猫,字典。我有一个数据帧,非常类似于以下内容:
boxNumber Content
[1.0, 2.0] A
[2.0, 4.5] B
[2.5, 3.0] C
[1.5, 2.5] F
[1.4, 4.5] D
[1.3, 3.2] E
现在我必须得到一个像{a:B,C:F,D:E}这样的字典。我用下面的方法来处理这个问题,我把它转换成了一个数据帧,删除了所有空值行。你知道吗
keys = ['A', 'B', 'C', 'F','D', 'E']
test1 = df[df.Content.str.match('A').shift(1).fillna(False)]
test2 = df[df.Content.str.match('C').shift(1).fillna(False)]
test3 = df[df.Content.str.match('D').shift(1).fillna(False)]
values = [test1.Content.iloc[0], test2.Content.iloc[0],test3.Content.iloc[0]
item1 = dict(zip(keys, values))
print(item1)
我的输出是
{'A':'B', 'D':'E', 'C':'F'}
但我需要
{'A':'B', 'C':'F', 'D':'E'}
由于在Python2.7中dict是无序的,所以我的最终输出也变得无序了!OrderedDict()是不好的。它必须是一个正常的口述。有什么解决办法吗? 还是我应该放弃使用熊猫?你知道吗
字典本来就是无序的。因此,这两部词典是等价的。您可能需要考虑来自
collections
模块的OrderedDict
它的行为像一本字典,但维持秩序。你知道吗
相对于:
不在乎秩序。你知道吗
相关问题 更多 >
编程相关推荐