Обнаружить изменение строки по группе и вернуть результат в исходный фрейм данных.Python

Программы на Python
Ответить
Anonymous
 Обнаружить изменение строки по группе и вернуть результат в исходный фрейм данных.

Сообщение Anonymous »

Вот мой пример. Я группирую, упорядочиваю и обнаруживаю изменения от одной строки к другой.

Код: Выделить всё

import pandas as pd
import datetime

my_df = pd.DataFrame({'col1': ['a', 'a', 'a', 'a', 'b', 'b', 'b'],
'col2': [2, 2, 3, 2, 5, 5, 5],
'col3': [datetime.date(2023, 2, 1),
datetime.date(2023, 3, 1),
datetime.date(2023, 5, 1),
datetime.date(2023, 4, 1),
datetime.date(2023, 3, 1),
datetime.date(2023, 2, 1),
datetime.date(2023, 4, 1)]})

my_df_temp = my_df.sort_values(by=['col3']).groupby('col1')['col2'].apply(
lambda x: x != x.shift(1)
).reset_index(name='col2_change')
Теперь я хотел бы вернуть результат в my_df, т. е. я бы хотел, чтобы в my_df был столбец col2_change.
Простое присвоение не будет работать my_df['col2_change'] = my_df_temp.col2_change.values
Один из способов сделать это — упорядочить my_df двумя столбцами col1 и col3, а затем просто присваиваем, но это выглядит немного трудоемко. Есть ли более простой способ сделать это?

Подробнее здесь: https://stackoverflow.com/questions/791 ... data-frame
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»