使用新
dt.dayofweek属性:
In [2]:df['weekday'] = df['Timestamp'].dt.dayofweekdfOut[2]: Timestamp Value weekday0 2012-06-01 00:00:00 100 41 2012-06-01 00:15:00 150 42 2012-06-01 00:30:00 120 43 2012-06-01 01:00:00 220 44 2012-06-01 01:15:00 80 4
在
Timestamp索引是的情况下,您需要重置索引,然后调用该
dt.dayofweek属性:
In [14]:df = df.reset_index()df['weekday'] = df['Timestamp'].dt.dayofweekdfOut[14]: Timestamp Value weekday0 2012-06-01 00:00:00 100 41 2012-06-01 00:15:00 150 42 2012-06-01 00:30:00 120 43 2012-06-01 01:00:00 220 44 2012-06-01 01:15:00 80 4
奇怪的是,如果您尝试从索引创建一个序列以不重置索引,您将
NaN像使用的结果
reset_index调用
dt.dayofweek属性那样获得值,而没有将结果
reset_index赋回原始df:
In [16]:df['weekday'] = pd.Series(df.index).dt.dayofweekdfOut[16]: Value weekdayTimestamp 2012-06-01 00:00:00 100 NaN2012-06-01 00:15:00 150 NaN2012-06-01 00:30:00 120 NaN2012-06-01 01:00:00 220 NaN2012-06-01 01:15:00 80 NaNIn [17]:df['weekday'] = df.reset_index()['Timestamp'].dt.dayofweekdfOut[17]: Value weekdayTimestamp 2012-06-01 00:00:00 100 NaN2012-06-01 00:15:00 150 NaN2012-06-01 00:30:00 120 NaN2012-06-01 01:00:00 220 NaN2012-06-01 01:15:00 80 NaN
编辑
正如用户@joris向我指出的那样,您只能访问
weekday索引的属性,因此以下内容将有效并且更加紧凑:
df['Weekday'] = df.index.weekday



