Ich hämmere meinen Kopf gegen die Wand, wenn ich versuche, ein Drop-Duplikat für Zeitreihen durchzuführen, basierend auf dem Wert eines Datetime-Indexes.Wie man pandas drop_duplicates basierend auf der Indexspalte ausführt
Meine Funktion ist die folgende:
def csv_import_merge_T(f):
dfsT = [pd.read_csv(fp, index_col=[0], parse_dates=[0], dayfirst=True, names=['datetime','temp','rh'], header=0) for fp in files]
dfT = pd.concat(dfsT)
#print dfT.head(); print dfT.index; print dfT.dtypes
dfT.drop_duplicates(subset=index, inplace=True)
dfT.resample('H').bfill()
return dfT
, die durch genannt wird:
inputcsvT = ['./input_csv/A08_KI_T*.csv']
for csvnameT in inputcsvT:
files = glob.glob(csvnameT)
print ('___'); print (files)
t = csv_import_merge_T(files)
print csvT
I erhalten
NameError: global name 'index' is not defined
den Fehler, was falsch ist?
UPDATE: Das Problem scheint zu entstehen, wenn csv-Eingabedateien (die verkettet werden) überlappen.
inputcsvT = ['./input_csv/A08_KI_T*.csv']
bekommt Dateien
A08_KI_T5
28/05/2015 17: 00,22.973,24.021
...
2015.08.10 13: 30,24.368,45.974
A08_KI_T6
08/10/2015 14: 00,24.779,41.526
...
2016.10.02 17: 012 00,22.326,41.
und es läuft korrekt, während: inputcsvT = ['./input_csv/A08_LR_T*.csv']
sammelt
A08_LR_T5
28/05/2015 17: 00,22.493,25.62
...
08/10/2015 13:30 , 24.296,44.596
A08_LR_T6
28/05/2015 17: 00,22.493,25.62
...
2016.10.02 17: 15,21.991, 38.45
was zu einem Fehler führt.
Eigentlich was versuchen Sie hier zu erreichen? Zum Beispiel, wenn du Duplikate hast, möchtest du den df der Duplikate trimmen? Sie könnten 'reset_index' aufrufen und der Aufruf' drop_duplicates' übergibt den 'index' Spaltennamen und das wird die Duplikate entfernen – EdChum
Leider bekomme ich dabei den Fehler: ' KeyError "DatetimeIndex (... ...dtype = 'datetime64 [ns]', Name = u'datetime ', length = 50276, freq = None) nicht im Index "' – Andreuccio
funktioniert mein Vorschlag unten? Möglicherweise müssen Sie den Indexnamen bestimmen, standardmäßig ist es' index "Aber Sie müssen vielleicht den Namen zuerst bekommen – EdChum