Я удивлен, что ничего не могу найти о ранжировании чисел в python...
По сути, мне нужны два сценария для выполнения одной и той же задачи, только один в порядке возрастания, а другой в порядке убывания.
row[2]
— числа для ранжирования, row[4]
– ячейка для ранжирования.
row[0] + row[1]
— это то, что определяет каждый набор/группу данных
В этом первом примере большие числа имеют более высокий ранг.
Пример CSV 1 (снижение позиций)
uniquedata1,uniquecell1,42,data,1,data
uniquedata1,uniquecell1,32,data,2,data
uniquedata1,uniquecell1,13,data,3,data
uniquedata2,uniquecell2,41,data,2,data
uniquedata2,uniquecell2,39,data,3,data
uniquedata2,uniquecell2,45,data,1,data
uniquedata2,uniquecell2,22,data,4,data
uniquedata1,uniquecell2,36,data,3,data
uniquedata1,uniquecell2,66,data,1,data
uniquedata1,uniquecell2,40,data,2,data
Во втором примере большие числа имеют меньший ранг.
Пример 2 в формате CSV (повышение ранга)
uniquedata1,uniquecell1,42,data,3,data
uniquedata1,uniquecell1,32,data,2,data
uniquedata1,uniquecell1,13,data,1,data
uniquedata2,uniquecell2,41,data,3,data
uniquedata2,uniquecell2,39,data,2,data
uniquedata2,uniquecell2,45,data,4,data
uniquedata2,uniquecell2,22,data,1,data
uniquedata1,uniquecell2,36,data,1,data
uniquedata1,uniquecell2,66,data,3,data
uniquedata1,uniquecell2,40,data,2,data
В этом третьем примере, который ранжируется вверх, он включает пустые ячейки, которым должны быть присвоены самые высокие ранги (если есть два пробела, им должен быть присвоен один и тот же ранг).
Пример 3 файла CSV (включая пустые ячейки)
uniquedata1,uniquecell1,42,data,2,data
uniquedata1,uniquecell1,,data,3,data
uniquedata1,uniquecell1,13,data,1,data
uniquedata2,uniquecell2,41,data,3,data
uniquedata2,uniquecell2,,data,3,data
uniquedata2,uniquecell2,,data,3,data
uniquedata2,uniquecell2,22,data,1,data
uniquedata1,uniquecell2,36,data,1,data
uniquedata1,uniquecell2,66,data,3,data
uniquedata1,uniquecell2,40,data,2,data
Кто-нибудь знает, как я могу достичь желаемого результата?
sort
, а не ранг. - person doctorlove   schedule 19.12.2013None
) ставитNone
перед любыми числами, поэтому обычный порядок сортировки уже точно соответствует вашим ожиданиям. То, что вы не показали, так это любые попытки решить эту проблему самостоятельно. - person Martijn Pieters   schedule 21.12.2013row[2]
— это столбец данных, которые необходимо ранжировать, аrow[4]
— это вывод ранга. Наборы данных или группы определяются путем объединенияrow[0]
иrow[1]
вместе, что в этом примере дает нам 3 уникальных класса для индивидуального ранжирования. Моя репутация раньше была 87, я назначил награду и теперь она 37. Я все еще могу присудить награду. - person Ryflex   schedule 22.12.2013row[4]
уже имеет значение (ранг) - так отображаемые строки данных являются входными или желаемыми выходными данными? Если это ввод, то значение следует игнорировать и пересчитывать на основеrow[2]
и группы, верно? - person martineau   schedule 22.12.2013row[4]
уже имеет желаемый ранг / значение, все, что там должно быть перезаписано новым расчетом, потому что размер группы может получить новые записи или меньше записей. - person Ryflex   schedule 22.12.201310,20,20,21
, то какими должны быть их ранги?1,2,3,4
,1,2,2,4
или1,2,2,3
? - person Skyler   schedule 22.12.20131,2,2,4
в отношении порядка строк, да, они должны оставаться в том же порядке. - person Ryflex   schedule 22.12.2013