У меня есть dataframe df, который состоит из столбцов стран и строк дат. Индекс имеет тип DateTime.
Я хотел бы отсортировать df по значениям каждой страны по последнему элементу в серии (например, по самой последней дате), а на графике - по странам "первых N" по этому последнему значению.
Я подумал, что если я отсортирую транспонирование df, а затем разрежу его, у меня будет то, что мне нужно. Следовательно, если N = 10, я бы выбрал df [0: 9] .
Однако, когда я пытаюсь выбрать последний столбец, я получаю сообщение keyerror со ссылкой на выбранный столбец:
KeyError: '2021-03-28 00:00:00'.
Я в тупике ....
df_T = df.transpose()
column_name = str(df_T.columns[-1])
df_T.sort_values(by = column_name, axis = 'columns', inplace = True)
#select the top 10 countries by latest value, eg
# plot df_T[0:9]
То, что я пытаюсь сделать, например, df:
A B C .... X Y Z
2021-03-29 10 20 5 .... 50 100 7
2021-03-28 9 19 4 .... 45 90 6
2021-03-27 8 15 2 .... 40 80 4
...
2021-01-03 0 0 0 .... 0 0 0
Я хочу выбрать серию, представляющую наибольшие значения N, начиная с последнего значения индекса (например, последней даты).
Транспонированные данные или оригинальный df?
оригинал лучше всего.
Там около 200 столбцов ... как бы вам это понравилось?
ОК, тогда лучше транспонировать;)
Готово - вставлено выше
Позвольте нам продолжить обсуждение в чате.
Проверить как предоставить отличный пример панд
Этот вопрос сам по себе хорош, но из-за отсутствия минимальный воспроизводимый пример я голосую за закрытие. С удовольствием удалим, если вы соответствуете стандартным требованиям Как спросить
Это сложный пример, и дэзраэль помогает мне лучше сформулировать. Спасибо

Можете ли вы поделиться первыми 3-4 строками данных?