Ich verstehe eine harte Zeit, was mit meiner SQL wird auf Pandas Datenrahmen Datentypen:Pandas Numerische Spalten wird als Objekt behandelt und coerce nicht
- User_ID wird erwartet, dass ein ‚Objekt‘ zu sein .. was ist in Ordnung.
- DATE ist im Format von 201.612, 201701, 201702, usw. (year_number + month_number)
- Einkommen alle numerischen Werte wie 57,25, 50, 100.10, etc
- ABZUEGE ist auch numerisch
- COUNT von STORES natürlich eine ganzen Zahl sein würde ...
ich verstehe nicht, warum mein Datensatz mit dieser Zahl und Summe Feldern als Objekt zurückkommt, da ich nicht Operationen wie df.total_deductions.max() verwenden kann. Ich verstehe nicht, was das verursacht oder wie ich es beheben kann.
query = """ SELECT
date,
user_id,
sum(income) total_spend,
sum(deductions) total_deductions ,
count(distinct stores) number_stores
FROM db_table GROUP BY user_id """
df = pd.read_sql(query, jdbc_connection)
df.dtypes:
date: object
user_id: object
total_spend: float
total_deductions: object
number_stores: object
Ich schaute auf die Daten. Ich kann nichts andeuten, um anzuzeigen, dass diese Zählungen oder Summen ein Objekt und nicht ein numerischer Wert wären.
Ich versuchte mit pd.to_numeric (each_of_my_columns, error = 'coerce'), aber diese Zwangs Optionen zwingt sie zu "NaN".
Kann jemand hypothetisieren, was hier vor sich gehen könnte oder wie man das löst, da ich annehme, dass ich etwas mache, das falsch offensichtlich sein sollte?
ich denke, es könnte verursacht werden Mit der Version von Pandas können Sie versuchen, df.convert_objects (convert_numeric = True) oder df ['each_column']. convert_objects (convert_numeric = True)? ... nicht irgendein Objekt, das von sum zurückgegeben wird, ist vielleicht gar keine Nummer ... so das Umwandeln der Spalte weise einen Fehler in der Version von Pandas vorher auf 0.7.0 Version – Eliethesaiyan
Zeigen Sie uns ein 'df.head()', würde helfen, um zu sehen, was die tatsächlichen Daten sind. – pshep123