У меня есть такие данные;Pandas: Как получить значения max и min и написать для каждой строки?
>> df
A B C
0 1 5 1
1 1 7 1
2 1 6 1
3 1 7 1
4 2 5 1
5 2 8 1
6 2 6 1
7 3 7 1
8 3 9 1
9 4 6 1
10 4 7 1
11 4 1 1
Я хочу принять максимальные и минимальные значения столбца B в зависимости от столбца A (для каждого же значения столбца А, я хочу, чтобы найти минимальную и максимальный в столбце B) и хочу написать результаты по исходной таблице. Мой код:
df1 = df.groupby(['A']).B.transform(max)
df1 = df1.rename(columns={'B':'B_max'})
df2 = df.groupby.(['A']).B.transform(min)
df1 = df1.rename(columns={'B':'B_min'})
df3 = df.join(df1['B_max']).join(df2['B_min'])
Это результат.
A B C B_max B_min
0 1 5 1
1 1 7 1 7
2 1 6 1
3 1 4 1 4
4 2 5 1
5 2 8 1 8
6 2 6 1 6
7 3 7 1 7
8 3 9 1 9
9 4 6 1
10 4 7 1 7
11 4 1 1 1
Но я хочу, чтобы таблица выглядела так:
A B C B_max B_min
0 1 5 1 7 4
1 1 7 1 7 4
2 1 6 1 7 4
3 1 4 1 7 4
4 2 5 1 8 6
5 2 8 1 8 6
6 2 6 1 8 6
7 3 7 1 9 7
8 3 9 1 9 7
9 4 6 1 7 1
10 4 7 1 7 1
11 4 1 1 7 1
интерпретировать код результат, чтобы выглядеть следующим образом
Странно, я дал такую ошибку; ТипError: Объект 'SeriesGroupBy' не поддерживает назначение предметов – anniejcannon
Да, я уверен. – anniejcannon
Извините, была опечатка. Теперь у меня такое предупреждение, EXTras9.py:93: SettingWithCopyWarning: Значение, которое нужно установить на копии среза из DataFrame. Попробуйте использовать .loc [row_indexer, col_indexer] = значение вместо – anniejcannon