Warum dieser CodeTypeerror: ("sort_values () bekam mehrere Werte für Argument 'Achse'", 'trat bei Index SUMLEV')
cdf = census_df[census_df['SUMLEV'] == 50]
cdf = cdf.apply(lambda x:x.sort_values('CENSUS2010POP', axis=0, ascending=False)).reset_index(drop=True)
cdf = cdf.groupby('STNAME').head(3)
cdf.head(20)
gibt die folgenden Fehler
TypeError: ("sort_values() got multiple values for argument 'axis'", 'occurred at index SUMLEV')
Während dieses Code funktioniert gut
cdf = census_df[census_df['SUMLEV'] == 50]
cdf = cdf.groupby('STNAME')
cdf = cdf.apply(lambda x:x.sort_values('CENSUS2010POP', axis=0, ascending=False)).reset_index(drop=True)
cdf = cdf.groupby('STNAME').head(3)
cdf.head(20)
Aber hier musste ich zweimal groupby tun, zuerst vor dem sortieren und nach dem sortieren Top-3-Werte zu wählen. Ich wollte zuerst sortieren, dann gruppieren und dann 3 für jede Gruppe auswählen.
CSV-Datei kann here
Dank bestellt werden!
Eigentlich bekomme ich Fehler: AttributeError: Kann nicht auf Callable-Attribut 'sort_values' von 'DataFrameGroupBy' Objekte zugreifen, versuchen Sie mit der 'apply' Methode – YohanRoth
Ich denke, Sie verwenden 'groupby' vor dem Sortieren. Sie können 'sort_values ()' direkt auf den ursprünglichen Datenrahmen ohne groupby anwenden. und Gruppendatenrahmen später. Da [pandas group by ist stabil] (http://stackoverflow.com/questions/39373820/is-pandas-dataframe-groupby-guaranteed-to-be-stable), bleibt der Datenrahmen nach der Gruppe nach sortiert. – Psidom