Panda'larla bazı istatistikler oluşturmak için gelen kutumdan zaman damgalarını çıkarmaya çalışıyorum. Kodum 1000 e-postaya ulaşıyor ve zaman damgalarını bir listede saklıyor. Daha sonra listeyi "time" türünde bir sütunu içeren bir dataframe veren pd.DataFrame öğesine iletiyorum.Pandas TimeGrouper issue - "time" dizininde Typeerror
Hafta içi güne, günün saatine göre e-posta sayısını sıralamak için groupby ve TimeGrouper'ı kullanmak istiyorum, bu nedenle zaman damgası sütunumu dizin olarak ayarladım, ancak TypeError'ı alıyorum: "Yalnızca DatetimeIndex ile geçerli , TimedeltaIndex veya PeriodIndex, ancak bir 'Index' örneğini aldım. To_dat saatini kullanmayı denedim, ancak başka bir TypeError: type 'time' nesnesi oluşturmuyor. Df [0] zaten bir datetime nesnesi olduğunu söyleyebilirim, o zaman TimeGrouper kullanmaya çalışırken neden bir hata atıyor?
import win32com.client
import pandas as pd
import numpy as np
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
inbox = outlook.GetDefaultFolder(6)
messages = inbox.Items
message = messages.GetLast()
timesReceived = [message.SentOn]
for i in range(1000):
try:
message = messages.GetPrevious()
timesReceived.append(message.SentOn)
except(AttributeError):
break
df = pd.DataFrame(timesReceived);
df.set_index(df[0],inplace=True)
grouped = df.groupby(pd.TimeGrouper('M'))
TypeError: Only valid with DatetimeIndex, TimedeltaIndex or PeriodIndex, but got an instance of 'Index'
Düzenleme: Ekleme df.info() ve df.head()
df.info()
<class 'pandas.core.frame.DataFrame'>
Index: 150 entries, 04/01/16 09:37:07 to 02/11/16 17:40:56
Data columns (total 1 columns):
0 150 non-null object
dtypes: object(1)
memory usage: 2.3+ KB
df.head()
0
0
04/01/16 09:37:07 04/01/16 09:37:07
04/01/16 04:34:30 04/01/16 04:34:30
04/01/16 03:02:14 04/01/16 03:02:14
04/01/16 02:15:12 04/01/16 02:15:12
04/01/16 00:16:27 04/01/16 00:16:27
“df.info()” ve “df.head()') çıktılarını paylaşır mısınız? – Stefan
Elbette, gönderimi dahil etmek üzere düzenledim. Teşekkürler: – thobru
'Dizin: 150 girdiler,' index' sütunlarınızın 'pd.to_datetime()' kullanarak ilk olarak 'datetime'na dönüştürülmesini önerir. df [0] 'datetime' gibi görünebilir, ancak tür dönüşümüne ihtiyaç duyar, 'df [0] = pd.to_datetime (df [0], format ='% m-% d-% Y% H:% M: Dizine ayarlanmadan önce% S '). – Stefan