Seite 1 von 1
Pandas merge: Error
Verfasst: Montag 5. Oktober 2020, 12:16
von naheliegend
Hi,
bekomme bei
Code: Alles auswählen
data5 = pd.merge(data0, data1, how='left', left_on=['Code'], right_on=['Code'])
folgenden Fehler:
Code: Alles auswählen
ValueError: You are trying to merge on int64 and object columns. If you wish to proceed you should use pd.concat
Wenn ich
eingeben, dann kommt folgender Fehler:
Code: Alles auswählen
File "pandas/_libs/lib.pyx", line 614, in pandas._libs.lib.astype_intsafe
ValueError: invalid literal for int() with base 10: '11.06.2020'
Was kann ich tun?
Re: Pandas merge: Error
Verfasst: Montag 5. Oktober 2020, 13:11
von sparrow
Spalten von gleichen Typ mergen.
Und wieso glaubst du, man kann ein Datums-String in eine Ganzzahl casten?
Re: Pandas merge: Error
Verfasst: Montag 5. Oktober 2020, 13:20
von Sirius3
Und was wundert Dich jetzt daran? Ein Datum kann nicht in eine Zahl verwandelt werden.
Re: Pandas merge: Error
Verfasst: Montag 5. Oktober 2020, 14:01
von naheliegend
Ja, aber wieso kann ich den Typ nicht ändern?
Also das sind halt in beiden df 5stellige Zahlenkombinationen. Nur ist das eine halt ein anderer Datentyp, der sich nicht ändern lässt.
Re: Pandas merge: Error
Verfasst: Montag 5. Oktober 2020, 14:18
von Sirius3
Ein Datum ist keine 5stellige Zahlenkombination sondern ein Datum.
Re: Pandas merge: Error
Verfasst: Montag 5. Oktober 2020, 14:55
von snafu
Ein Datum ist vom Typ date bzw datetime. Wenn man unbedingt eine Ganzzahl haben will, dann müsste man das Datum in einen Zeitstempel umwandeln. Bei fehlender Zeitangabe müsste man dann wohl von 0 Uhr ausgehen. Aber sinnvoll ist das in dem Zusammenhang nicht wirklich. Warum muss es denn unbedingt eine Zahl sein? Anscheinend willst du hier Dinge zusammenführen, die einfach nicht zusammenpassen. Was steht denn in der Spalte mit den Integern? Sind das auch Datumsangaben?
Re: Pandas merge: Error
Verfasst: Montag 5. Oktober 2020, 15:59
von naheliegend
Ich raff das nicht. Das ist aber kein Datum
Sind beides csv-dateien die ich mit pd.read_csv(..) einlese.
Code: Alles auswählen
0 14882
1 75014
2 37836
3 34794
4 44038
...
962 57645
963 63910
964 82762
965 66175
966 18768
Name: Code, Length: 967, dtype: object
und für das andere:
Code: Alles auswählen
0 44038
1 32504
2 93256
3 69533
4 80666
...
1004 58712
1005 17905
1006 42759
1007 98340
1008 31400
Name: Code, Length: 1009, dtype: int64
Re: Pandas merge: Error
Verfasst: Montag 5. Oktober 2020, 17:42
von Sirius3
Bei `data1['Code']` steht doch eindeutig der Typ `object` und irgendwo zwischen Zeile 5 und 961 ist halt keine Zahl, sondern ein Datum.
Re: Pandas merge: Error
Verfasst: Mittwoch 7. Oktober 2020, 13:15
von naheliegend
Du hast Recht. Wow. Ich hatte ein Brett vor dem Kopf. Danke