У меня есть данные, подобные приведенному ниже приведенному ниже.Мне интересно, есть ли способ создать новые столбцы для всех временных измерений в одном из полей отметки времени, например, в поле 'start_timestamp'.Я хотел бы создать новые столбцы для года, месяца, дня недели, часа, минуты на основе столбца start_timestamp.Я знаю, что мог бы кодировать для каждого временного измерения вручную, но мне интересно, есть ли способ проверить временные метки и создать их автоматически.
Data_df:
Unnamed: 0 call_history_id calllog_id \
0 16358 1210746736 ca58d850-6fe6-4673-a049-ea4a2d8d7ecf
1 16361 1210976828 c005329b-955d-4d88-98a5-1c47e6a1cb80
2 16402 1217791595 050e9b83-54c2-4c87-abdd-32225c0d3189
3 16471 1228495414 45705ed1-a8e2-4a15-8941-5b0a40b7d409
4 27906 1245173592 04e56818-04a0-4704-ac86-31c31dac2370
call_id connection_id pbx_name pbx_id extension_number \
0 1.509170e+12 1.509170e+12 sales8x8 sales8x8 595
1 1.509170e+12 1.509170e+12 sales8x8 sales8x8 595
2 1.509170e+12 1.509170e+12 sales8x8 sales8x8 595
3 1.509170e+12 1.509170e+12 sales8x8 sales8x8 595
4 1.509170e+12 1.509170e+12 sales8x8 sales8x8 595
extension_id customer_id address name \
0 595 2.525100e+29 14086694428 Sun Basket
1 595 2.525100e+29 13214371589 PEREZ,BRYAN
2 595 2.525100e+29 14088566290 14088566290
3 595 2.525100e+29 8059316676 Dialing
4 595 2.525100e+29 12028071151 Implementation Team
start_timestamp direction call_internal call_missed duration \
0 1/8/18 19:49 I 0.0 0.0 4414.0
1 1/8/18 20:09 I 0.0 0.0 8300.0
2 1/9/18 20:31 I 0.0 0.0 14766.0
3 1/11/18 17:16 I 0.0 0.0 1686.0
4 1/15/18 22:55 I 0.0 0.0 3491.0
device_model group_call group_name group_number device_id \
0 mediaserver 0.0 N N MasterSlaveService
1 mediaserver 0.0 N N MasterSlaveService
2 mediaserver 0.0 N N MasterSlaveService
3 mediaserver 0.0 N N MasterSlaveService
4 mediaserver 0.0 N N MasterSlaveService
history_event_state created_time updated_time group_type
0 A 1/8/18 19:49 1/8/18 19:49 N
1 A 1/8/18 20:09 1/8/18 20:09 NaN
2 A 1/9/18 20:31 1/9/18 20:31 N
3 A 1/11/18 17:16 1/11/18 17:16 N
4 A 1/15/18 22:55 1/15/18 22:55 N
Обновление:
def ts_periods(f_nm, d_list, d_df):
t_df=d_df.copy()
for i in d_list:
if i=='year':
t_df[f_nm+'_Year']=pd.DatetimeIndex(t_df[f_nm]).year
elif i=='month':
t_df[f_nm+'_month']=pd.DatetimeIndex(t_df[f_nm]).month
elif i=='weekday':
t_df[f_nm+'_weekday']=pd.DatetimeIndex(t_df[f_nm]).weekday_name
elif i=='week' in d_list:
t_df[f_nm+'_week']=pd.DatetimeIndex(t_df[f_nm]).week
elif i=='hour':
t_df[f_nm+'_hour']=pd.DatetimeIndex(t_df[f_nm]).hour
elif i=='minute':
t_df[f_nm+'_minute']=pd.DatetimeIndex(t_df[f_nm]).minute
return t_df