In [1]:
import pandas as pd
In [2]:
df = pd.read_csv('data/src/sample_date.csv', index_col=0, parse_dates=True)
print(df)
In [3]:
print(type(df.index))
In [4]:
print(df.index.weekday)
In [5]:
print(df.index.dayofweek)
In [6]:
print(df.index.day_name())
In [7]:
print(df[df.index.weekday == 0])
In [8]:
print(df[df.index.weekday == 0].sum())
In [9]:
print(df[df.index.weekday == 0].mean())
In [10]:
print(df[df.index.weekday == 0].agg(['sum', 'mean']))
In [11]:
df_w = df.set_index([df.index.weekday, df.index])
print(df_w)
In [12]:
df_w.index.names = ['weekday', 'date']
print(df_w)
In [13]:
df_w.sort_index(inplace=True)
print(df_w)
In [14]:
print(df_w.sum())
In [15]:
print(df_w.sum(level='weekday'))
In [16]:
print(df_w.mean(level='weekday'))
In [17]:
print(df_w.groupby(level='weekday').agg(['sum', 'mean']))
In [18]:
print(df.index.year)
In [19]:
df_y = df.set_index([df.index.year, df.index])
df_y.index.names = ['year', 'date']
print(df_y)
In [20]:
print(df_y.sum(level='year'))
In [21]:
df_q = df.set_index([df.index.quarter, df.index])
df_q.index.names = ['quarter', 'date']
print(df_q)
In [22]:
print(df_q.sum(level='quarter'))
In [23]:
df_m = df.set_index([df.index.month, df.index])
df_m.index.names = ['month', 'date']
print(df_m)
In [24]:
print(df_m.sum(level='month'))
In [25]:
print(df.index.month_name())
In [26]:
df_w2 = df.set_index([df.index.week, df.index])
df_w2.index.names = ['week', 'date']
print(df_w2)
In [27]:
print(df_w2.sum(level='week'))
In [28]:
print(pd.date_range('2017-01-01', '2017-01-07').week)
In [29]:
print(pd.date_range('2017-01-01', '2017-01-07').day_name())
In [30]:
df_yw = df.set_index([df.index.year, df.index.weekday, df.index])
df_yw.index.names = ['year', 'weekday', 'date']
df_yw.sort_index(inplace=True)
print(df_yw)
In [31]:
print(df_yw.sum(level='weekday'))
In [32]:
print(df_yw.sum(level=['year', 'weekday']))
In [33]:
print(df_yw.loc[(2017, 1), :])
In [34]:
print(df_yw.xs(1, level='weekday'))
In [35]:
print(df_yw.loc[(2017, [0, 4]), :])
In [36]:
print(df_yw.loc[pd.IndexSlice[:, [0, 4]], :])
In [37]:
df_yqmw = df.set_index([df.index.year, df.index.quarter, df.index.month, df.index.weekday, df.index])
df_yqmw.index.names = ['year', 'quarter', 'month', 'weekday', 'date']
df_yqmw.sort_index(inplace=True)
print(df_yqmw)
In [38]:
print(df_yqmw.sum(level='month'))
In [39]:
print(df_yqmw.sum(level='weekday'))
In [40]:
print(df_yqmw.sum(level=['quarter', 'weekday']))
In [41]:
print(df_yqmw.xs(1, level='weekday'))
In [42]:
print(df_yqmw.xs((1, 2017), level=('weekday', 'year')))
In [43]:
print(df_yqmw.loc[pd.IndexSlice[2017, :, :, [0, 4]], :])