Pandas GroupBy на большом датафрейме - PullRequest
0 голосов
/ 22 сентября 2019

У меня есть фрейм данных, который содержит 150 столбцов.Из 150 столбцов типа string 15, а все остальные - с плавающей точкой.

Фрейм данных содержит идентичные записи для комбинаций из 15 строковых столбцов, а значения в остальных могут отличаться.Я хотел сделать groupby для этих 15 строковых столбцов и сделать сумму всех столбцов с плавающей точкой.

Как это легко сделать в Python без указания имени каждого столбца в операторе groupby , поскольку размер кадра данных огромен.

Ответы [ 2 ]

1 голос
/ 22 сентября 2019

Использование списочного понимания 1-й фильтр столбцов с типом объекта type и использование cols в вашей группе по функции

cols = [col for col in df.columns if df[col].dtype == np.object]
df.groupby(cols).sum()

1 голос
/ 22 сентября 2019

намек на вашу работу.С помощью этого кода вы можете отфильтровать столбцы строкового типа.

string_columns = list()    
for col in df.columns:
    if df[col].dtypes == 'O':
        string_columns.append(col)

Наконец, string_columns будет содержать имена столбцов с типом данных Object, которые можно использовать для функции groupby.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...