Ich habe ein DataFrame, das zwei Timestamp-Spalten hat, von denen eine als Index für das Resampling verwendet wird, die andere bleibt als Spalte. Wenn ich den DataFrame resample, wird der als Spalte verbleibende gelöscht. Ich möchte es neu abgetastet werden, als ob es sich um eine numerische Spalte waren (was es wirklich ist):Pandas löscht Timestamp-Spalten in Resample
import numpy as np
import pandas as pd
init_time=pd.date_range(start='2010-01-01 00:00', end='2010-01-05 00:00', freq='12H')
valid_time=pd.date_range(start='2010-01-01 00:00', end='2010-01-05 00:00', freq='12H')
data = np.random.random(len(valid_time))
frame = pd.DataFrame(index=valid_time, data=data)
frame['init_time'] = init_time
Datenrahmen hat einen Index, 1 numerische Spalte und eine Spalte Zeitstempel
0 init_time
2010-01-01 00:00:00 0.869667 2010-01-01 00:00:00
2010-01-01 12:00:00 0.225805 2010-01-01 12:00:00
2010-01-02 00:00:00 0.348080 2010-01-02 00:00:00
2010-01-02 12:00:00 0.761399 2010-01-02 12:00:00
2010-01-03 00:00:00 0.645069 2010-01-03 00:00:00
2010-01-03 12:00:00 0.133111 2010-01-03 12:00:00
2010-01-04 00:00:00 0.314302 2010-01-04 00:00:00
2010-01-04 12:00:00 0.130491 2010-01-04 12:00:00
2010-01-05 00:00:00 0.621703 2010-01-05 00:00:00
Jetzt neu berechnen täglich:
daily = frame.resample('D', how='mean')
0
2010-01-01 0.547736
2010-01-02 0.554740
2010-01-03 0.389090
2010-01-04 0.222396
2010-01-05 0.621703
Meine init_time
Säule fallen gelassen wurde. Ich könnte es zuerst in eine rohe Integer-Spalte umwandeln, aber gibt es einen einfacheren Weg?
Danke, das ist im Wesentlichen die Abhilfe, die ich bin mit. Ich frage mich, ob es einen Wunsch gibt, optional eine Resampling-Funktion pro Spalte in Pandas anzugeben? – samwise
könnte man es auch mit TimeGroup über eine groupby machen. Ich nehme an, Sie könnten eine Signatur haben wie: '' df.resamplee (freq .... how = {Spalten: func .....}, how_default = default_function) '' um Spaltenüberschreibungen und einen Standardwert zu haben. Pls Datei ein Problem auf GitHub dafür. (und eine PR wäre noch besser!) – Jeff
OK, werde es versuchen. Könnte meine erste PR sein. – samwise