Я пытаюсь написать программу, которая спрашивает пользователя, по какому столбцу в CSV-файле он хочет отсортировать, и генерирует новый CSV-файл, отсортированный по запрошенному столбцу, причем некоторые столбцы содержат строки, а другие содержат целые числа, а другиепоплавки.Когда я пытаюсь сортировать по столбцам, которые содержат целые числа или числа с плавающей точкой, это происходит не так, как мне бы хотелось.Это похоже на сортировку чисел «по алфавиту», если это имеет смысл.
Короче, у меня возникают проблемы при попытке правильно отсортировать числовые столбцы.
Я пытаюсь только импортироватьмодуль csv.
import csv
user_input = input("What would you like to sort by? (Country,Name, GDPPC, Literacy, InfantMortality, Agriculture, Population, NetMigration)")
with open('Countries.csv', 'r', newline='') as input_file:
csv_input = csv.DictReader(input_file)
data = sorted(csv_input,reverse=True, key=lambda row: (row[user_input]))
with open('Countries_Sorted.csv', 'w') as output_file:
csv_output = csv.DictWriter(output_file, fieldnames=csv_input.fieldnames)
csv_output.writeheader()
csv_output.writerows(data)
with open('Countries_Sorted.csv', 'r') as final_file:
for line in final_file:
print(line)
Если я попытаюсь отсортировать, например, по населению, я получу что-то вроде этого ...
Population
99390000
9845000
9799000
9651000
9513000
92900
91700000
9157000
91510000
892145
Когда это должно сгенерировать что-то вроде этого...
Population
1371000000
1311000000
321400000
257600000
207800000
188900000
182200000
161000000
144100000
127000000