按列表中的顺序对Dict排序(python)
我正在尝试将一个按列表中的顺序对Dict排序(python),python,pandas,dictionary,ordereddictionary,Python,Pandas,Dictionary,Ordereddictionary,我正在尝试将一个dict转换为一个有序的df。dict表示一个散点图,该散点图显示了各个箱中的坐标 假设x,y列表如下所示: x = [10,40,33,44,66,77,33,44,55,2] y = [1,4,53,34,56,47,83,44,25,12] 我将坐标排序到适当的箱子中,输出为: bins =({ 1: [(10, 1), (2, 12)], 2: [(40, 4), (33, 53), (44, 34), (33, 83), (44, 4
dict
转换为一个有序的df
。dict
表示一个散点图
,该散点图显示了各个箱中的坐标
假设x,y列表如下所示:
x = [10,40,33,44,66,77,33,44,55,2]
y = [1,4,53,34,56,47,83,44,25,12]
我将坐标排序到适当的箱子中,输出为:
bins =({
1: [(10, 1), (2, 12)],
2: [(40, 4), (33, 53), (44, 34), (33, 83), (44, 44)],
3: [(66, 56), (55, 25)],
4: [(77, 47)]
})
如果我转换为df:
df = pd.DataFrame.from_dict(bins, orient = 'index')
d = df.transpose()
输出:
1 2 3 4
0 (10, 1) (40, 4) (66, 56) (77, 47)
1 (2, 12) (33, 53) (55, 25) None
2 None (44, 34) None None
3 None (33, 83) None None
4 None (44, 44) None None
我希望做的是在列表中按顺序排列df
,因此我希望输出为:
1 2 3 4
0 (10, 1)
1 (40, 4)
2 (33, 53)
3 (44, 34)
4 (66, 56)
5 (77, 47)
6 (33, 83)
7 (44, 44)
8 (55, 25)
9 (2, 12)
我不确定这是否可以做到。所以我想尝试返回每个索引中每个分散点的箱号:
Bin
0 1
1 2
2 2
3 2
4 4
5 4
6 2
7 2
8 3
9 1
我尝试了收藏。OrderedDict
但我需要按索引而不是按键进行订购
我不确定是否可以将输入设置为列表列表?跳过熊猫部分
b=collections.OrderedDict(箱子)#按列表中的顺序度假
collections.OrderedDict不对构造函数中给定的值进行排序。它只是保留了dict的创建顺序
如果您需要重新订购dict并保留其顺序,则需要对箱子进行排序(根据您的要求),然后将其传递给已订购的dict
例如,;如果您想对按键上的箱子进行排序
b = collections.OrderedDict()
for k in sorted(bins):
b[k] = bins[k]
Historogram2d?创建和返回垃圾箱?并执行垃圾箱操作我不想让读者感到困惑。箱子的尺寸不规则。基本上有两个弧
。传统的网格不适用