Ich arbeite an einem Multiindex-Serie Mixed-Typen Werte (timedeltas und int) enthält:Beeinflusst Pandas.Series.unstack() Datentypen?
char
7 a 103 minutes
s 63
9 a 129 minutes
s 211
10 a 106 minutes
s 63
Name: timestamp, dtype: object
Index:
MultiIndex(levels=[[7, 9, 10], ['a', 's']],
labels=[[0, 0, 1, 1, 2, 2], [0, 1, 0, 1, 0, 1]],
names=['char', None])
Wenn ich versuche, es pandas.Series.unstack()
mit Unstack, wandelt es alle Werte zu Timedeltas (mit einer anderen Genauigkeit):
a s
char
7 01:43:00 00:00:00.000000
9 02:09:00 00:00:00.000000
10 01:46:00 00:00:00.000000
Weiß jemand woher das kommt?
EDIT
ist hier ein paar mehr Infos. Probe der Originaldaten:
timestamp char
0 2008-01-15 23:56:52 7
1 2008-01-16 00:07:28 7
2 2008-01-01 16:12:32 9
3 2008-01-03 01:52:08 9
4 2008-07-06 17:23:25 10
5 2008-07-06 17:33:47 10
ich extrahieren ein paar Features:
def get_session(ts):
ts = ts.sort_index()
dt = (ts - ts.shift()).fillna(0)
first_logs = dt > '30m'
sessions = first_logs.cumsum() + 1
duration = sessions.value_counts().mean() * np.timedelta64(10, 'm')
return pd.Series({'s': max(sessions), 'a': duration})
timetable = data.groupby('char')[' timestamp'].apply(get_session)
Was gibt mir:
char
7 a 20 minutes
s 1
9 a 10 minutes
s 2
10 a 20 minutes
s 1
Name: timestamp, dtype: object
, die nach dem aussehen wie entstapelt werden:
timetable.unstack()
a s
char
7 00:20:00 00:00:00.000000
9 00:10:00 00:00:00.000000
10 00:20:00 00:00:00.000000
können Sie Rohdaten und Code schreiben, dies zu reproduzieren, und deine pandas und numpy version danke – EdChum