Похоже, что в df1
большинство столбцов numeric
на самом деле str
. Вы можете сказать запятыми (,
), которые разделяют тысячи. Попробуйте:
df.iloc[:,1:] = df.iloc[:,1:].apply(lambda x: str(x).replace(",",""))
df.iloc[:,1:] = df.iloc[:,1:].apply(lambda x: pd.to_numeric(x))
В первой строке удаляются запятые из всех второго, третьего и т. Д. Столбцов. Вторая строка превращает их в числовые типы данных. На самом деле это может быть одна строка, но я написал это в две строки для удобства чтения.
Как только это будет сделано, вы можете попробовать свой код groupby
.
Это хорошая практикапроверьте типы данных ваших столбцов, как только вы загрузите их. Вы можете сделать это с df1.dtypes
.