Ich fragte vor kurzem eine Frage Merge pandas dataframe on time and another column über das Zusammenführen von Datenrahmen und bekam eine hervorragende, einzeilige Antwort, die perfekt mit meinen Testdaten funktionierte. Allerdings, wenn ich es in meine eigentlichen Daten zu setzen versuchte, bekam ich folgende Fehlermeldung:Pandas Merge Fehler: kann nicht von einer doppelten Achse neuindizieren
cannot reindex from a duplicate axis
Hier ist ein Teil des Codes aus dieser Frage (mit einer geringfügigen Änderung überlappende Zeitstempel zu zeigen):
a = {'date':['1/1/2015 00:00','1/1/2015 00:15','1/1/2015 00:30'], 'num':[1,2,3]}
b = {'date':['1/1/2015 00:15','1/1/2015 00:30','1/1/2015 00:45'], 'num':[4,5,6]}
dfa = pd.DataFrame(a)
dfb = pd.DataFrame(b)
dfa['date'] = dfa['date'].apply(pd.to_datetime)
dfb['date'] = dfb['date'].apply(pd.to_datetime)
und die Lösung:
dfa.set_index('date').combine_first(dfb.set_index('date')).asfreq('15T').reset_index()
der obige Code (mit einfachen Daten) wirkt wie ein Zauber, aber wenn jemand weiß, was könnte falsch Witz gehen h mein Code in der Produktion, lass es mich wissen. Vielen Dank.
Und ja, es gibt ähnliche Fragen zu SO, aber ich habe keine gefunden, die damit zu tun haben, dass es inhärente Duplikate in den Indizes geben wird und ich möchte, dass der eine den anderen überschreibt.
haben Sie dupliziere Daten mit 'dfa' an sich? Oder 'dfb' an sich? Wenn ja, möchtest du den ersten behalten? – piRSquared
@piRSquared - Ich glaube nicht, dass es Duplikate in 'dfa' oder' dfb' gibt, aber überprüfen kann. Vielen Dank. – pshep123