您可以像这样在day
的{{1}}上进行循环。
datetime
这将为您提供以下结果:
import pandas as pd
from datetime import datetime,timedelta
df = pd.DataFrame(columns=['SomeDatetime'],index=[0,1,2,3,4,5])
now = datetime.now()
df.loc[0,'SomeDatetime'] = now + timedelta(minutes = 10)
df.loc[1,'SomeDatetime'] = now - timedelta(days = 1)
df.loc[2,'SomeDatetime'] = now + timedelta(minutes = 15)
df.loc[3,'SomeDatetime'] = now + timedelta(minutes = 20)
df.loc[4,'SomeDatetime'] = now + timedelta(minutes = 50)
df.loc[5,'SomeDatetime'] = now + timedelta(minutes = 90)
print("Dataframe\n")
print(df)
print("\nDay Loop\n")
for day in df['SomeDatetime'].dt.day.unique():
day_value = df[df['SomeDatetime'].dt.day == day]
print(day_value)
您也可以为Dataframe
SomeDatetime
0 2019-11-15 09:02:47.784752
1 2019-11-14 08:52:47.784752
2 2019-11-15 09:07:47.784752
3 2019-11-15 09:12:47.784752
4 2019-11-15 09:42:47.784752
5 2019-11-15 10:22:47.784752
Day Loop
SomeDatetime
0 2019-11-15 09:02:47.784752
2 2019-11-15 09:07:47.784752
3 2019-11-15 09:12:47.784752
4 2019-11-15 09:42:47.784752
5 2019-11-15 10:22:47.784752
SomeDatetime
1 2019-11-14 08:52:47.784752
和其他用户执行此操作。
评论后编辑
week
结果:
import numpy as np
import pandas as pd
from datetime import datetime,timedelta
df = pd.DataFrame(columns=['SomeDatetime','x','y'],'SomeDatetime'] = now - timedelta(days = 30*4) - timedelta(days = 3)
df['x'] = pd.Series(np.random.randn(6))
df['y'] = pd.Series(np.random.randn(6))
df.set_index('SomeDatetime',inplace=True)
print("Dataframe\n")
print(df)
print("\nDay Loop\n")
for date in df.index.to_series().dt.date.unique():
print(date)
day_value = df[df.index.to_series().dt.date == date]
print(day_value)
print('\n')
有帮助吗?
本文链接:https://www.f2er.com/3097265.html