Pandas свод по всем столбцам кроме указанных
Как в pandas сделать группировку по столбцам, но чтобы указать не те столбцы по которым свод, а те которые надо исключить? Например есть 20 столбцов, нужно сделать свод по 18 из них. Как правильно написать groupby или pivot_table чтобы указать только 2 "Ненужных" столбца, а не писать 18 нужных?
Ответы (1 шт):
Когда df - ваш датафрейм и "Exclude1", "Exclude2" не нужные столбцы, вы можете сделать список остальных как
cols = [col for col in df.columns if col not in ("Exclude1", "Exclude2")]
и применить этот список, например
df.goupby(cols).sum()
Объяснение:
df.cols- хотя это объект типаIndex, его возможно использовать как список всех имен столбцов[col for col in df.columns if col not in ("Exclude1", "Exclude2")]- это генератор списка. Я напишу его с излишними пробелами, чтобы лучше было видно его 3 части:[col for col in df.columns if col not in ("Exclude1", "Exclude2")]Перевод:
- Список всех объектов
col, - из списка (
for col in)df.columns, - которые не находятся (
if col not in) в кортеже("Exclude1", "Exclude2").
- Список всех объектов