Как изменить порядок кадров данных на основе первого ненулевого значения каждой строки ⇐ Python
Как изменить порядок кадров данных на основе первого ненулевого значения каждой строки
У меня есть таблица данных pandas о продажах магазинов, открытых в разные даты, в столбцах указаны месяцы. Я хочу изменить порядок данных так, чтобы столбцы отображались за 1-й месяц с момента открытия, за 2-й месяц с момента открытия... Это сделано для того, чтобы я мог сравнить производительность за 1-й месяц для каждого магазина. Кадр данных выглядит примерно так:
импортировать панд как pd df = pd.DataFrame([[0.0, 0.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0], [0,0, 0,0, 0,0, 3,0, 1,0, 1,0, 7,0, 0,0], [0,0, 0,0, 0,0, 0,0, 15,0, 16,0, 17,0, 18,0] ] , columns=['19 января', '19 февраля', '19 марта', '19 апреля', '19 мая', '19 июня', '19 июля', '19 августа' ']) Я хочу, чтобы это было что-то вроде: А Б В Г Д Е Ж Г Х 0 3,0 4,0 5,0 6,0 7,0 8,0 1 3,0 1,0 1,0 3,0 7,0 0,0 2 15,0 16,0 17,0 18,0 Я попробовал следующее, чтобы перебрать каждую строку и найти первое ненулевое значение:
# определяем функцию для поиска первого ненулевого значения в строке защита first_non_zero(строка): для значения в строке: если значение != 0: возвращаемое значение вернуть 0 # применяем функцию к каждой строке DataFrame df['first_non_zero'] = df.apply(first_non_zero, axis=1)
Я еще больше не уверен в том, как изменить порядок всего фрейма данных. Есть идеи?
У меня есть таблица данных pandas о продажах магазинов, открытых в разные даты, в столбцах указаны месяцы. Я хочу изменить порядок данных так, чтобы столбцы отображались за 1-й месяц с момента открытия, за 2-й месяц с момента открытия... Это сделано для того, чтобы я мог сравнить производительность за 1-й месяц для каждого магазина. Кадр данных выглядит примерно так:
импортировать панд как pd df = pd.DataFrame([[0.0, 0.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0], [0,0, 0,0, 0,0, 3,0, 1,0, 1,0, 7,0, 0,0], [0,0, 0,0, 0,0, 0,0, 15,0, 16,0, 17,0, 18,0] ] , columns=['19 января', '19 февраля', '19 марта', '19 апреля', '19 мая', '19 июня', '19 июля', '19 августа' ']) Я хочу, чтобы это было что-то вроде: А Б В Г Д Е Ж Г Х 0 3,0 4,0 5,0 6,0 7,0 8,0 1 3,0 1,0 1,0 3,0 7,0 0,0 2 15,0 16,0 17,0 18,0 Я попробовал следующее, чтобы перебрать каждую строку и найти первое ненулевое значение:
# определяем функцию для поиска первого ненулевого значения в строке защита first_non_zero(строка): для значения в строке: если значение != 0: возвращаемое значение вернуть 0 # применяем функцию к каждой строке DataFrame df['first_non_zero'] = df.apply(first_non_zero, axis=1)
Я еще больше не уверен в том, как изменить порядок всего фрейма данных. Есть идеи?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Кадр данных Pandas заполняется на единицу больше предыдущего ненулевого значения
Anonymous » » в форуме Python - 0 Ответы
- 12 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Кадр данных Pandas заполняется на единицу больше предыдущего ненулевого значения
Anonymous » » в форуме Python - 0 Ответы
- 16 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Обработка каждой группы кадров данных PySpark отдельно без сбора данных.
Anonymous » » в форуме Python - 0 Ответы
- 10 Просмотры
-
Последнее сообщение Anonymous
-