我有一个带键的对象,值是整数:
import pandas as pd
data = pd.DataFrame([[1, 1, 0.5], [1, 1, 0.5], [1, 0, 1], [2, 1, 0.5], [2, 0, 1],
[2, 1, 0.5], [3, 1, 0.5], [3, 0, 1], [3, 1, 0.5]],
columns=['a', 'b', 'c'])
我想将此对象排序为
{
10: 3,
20: 3,
30: 3,
60: 1
}
你有什么解决方案可以解决我的问题吗?
抱歉我的英语不好!
答案 0 :(得分:3)
4.3.3对象 对象是Object类型的成员。它是属于无序集合的属性 包含原始值,对象或函数。存储在对象属性中的函数称为a 方法
答案 1 :(得分:0)
我为你准备了一点解决方案。首先将其转换为数组,然后按所需的属性进行排序。
还在打印件中显示对象 {} 与数组 [] 之间的差异。检查小提琴,你有一个带有你对象值的排序数组。
var obj = {
10: 3,
20: 3,
30: 3,
60: 1
};
var keys = Object.keys(obj);
var arr = [];
for (i = 0; i < keys.length; i++) {
arr.push({
val: obj[keys[i]],
key: keys[i]
});
}
var ordered = false;
while (!ordered) {
var i = 0;
ordered = true;
for (i = 0; i < arr.length - 1; i++) {
if (arr[i].val > arr[i + 1].val) {
var pass = arr[i + 1].val;
var passkey = arr[i + 1].key;
arr[i + 1].val = arr[i].val;
arr[i + 1].key = arr[i].key;
arr[i].val = pass;
arr[i].key = passkey;
ordered = false;
}
}
}
var newObj = {};
for (i = 0; i < arr.length; i++) {
newObj[arr[i].key] = arr[i].val
console.log("val:" + arr[i].val + ",key:" + arr[i].key);
}
document.write("<p>THE ARRAY:" + JSON.stringify(arr) + "</p>");
document.write("<p>THE OBJECT:" + JSON.stringify(newObj) + "</p>");