Python 数据帧列操作和到字典的转换

Python 数据帧列操作和到字典的转换,python,python-2.7,pandas,dictionary,dataframe,Python,Python 2.7,Pandas,Dictionary,Dataframe,我知道我的问题有很多变化。但我希望我的在某些方面有所不同,不会被标记。使用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}这样的字典。我用下面的方法来处理这个问题,我把它转换成了一

我知道我的问题有很多变化。但我希望我的在某些方面有所不同,不会被标记。使用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()是不好的。它需要是一个正常的命令。有什么解决办法吗?
还是干脆不用熊猫了?

字典本来就是无序的。因此,这两本词典是等价的。您可能想从<代码>集合模块

中考虑<代码>有序DICT<代码>
from collections import OrderedDict

OrderedDict(zip(df.Content.iloc[::2], df.Content.iloc[1::2]))

OrderedDict([(u'A', u'B'), (u'C', u'F'), (u'D', u'E')])
它的行为就像一本字典,但维持着秩序

与之相反:

dict(zip(df.Content.iloc[::2], df.Content.iloc[1::2]))

{u'A': u'B', u'C': u'F', u'D': u'E'}

它不关心顺序。

字典天生就是无序的。因此,这两本词典是等价的。您可能想从<代码>集合模块

中考虑<代码>有序DICT<代码>
from collections import OrderedDict

OrderedDict(zip(df.Content.iloc[::2], df.Content.iloc[1::2]))

OrderedDict([(u'A', u'B'), (u'C', u'F'), (u'D', u'E')])
它的行为就像一本字典,但维持着秩序

与之相反:

dict(zip(df.Content.iloc[::2], df.Content.iloc[1::2]))

{u'A': u'B', u'C': u'F', u'D': u'E'}

这与订单无关。

我不明白问题出在哪里
{'A':'B','C':'F','D':'E'}={'A':'B','D':'E','C':'F'}
为什么需要排序?因为'A','B','C','D','E','F'都是从PDF中提取的json…这些都是示例…A可以是名字,B可以是姓氏…然后是D,这是“年龄”…E是年龄…我不明白问题是什么
{'A':'B','C':'F','D':'E'}={'A':'B','D':'E','C':'F'}
为什么需要排序?因为'A','B','C','D','E','F'都是从PDF中提取的json…这些都是示例…A可以是名字,B可以是姓氏…然后是D,这是“年龄”…E是#年龄…除了OrderedICT之外没有其他方法了吗()?我最后读了更多关于词典的书,这似乎是一条路…谢谢你除了一份订单之外没有别的路吗?我最后读了更多关于词典的书,这似乎是一条路…谢谢