pandas时间处理、分组聚合

import pandas as pd
import numpy as np
data=pd.read_excel(r'meal_order_detail.xlsx')
print(data.shape)
(2779, 19)
print(data.columns)
Index(['detail_id', 'order_id', 'dishes_id', 'logicprn_name',
       'parent_class_name', 'dishes_name', 'itemis_add', 'counts', 'amounts',
       'cost', 'place_order_time', 'discount_amt', 'discount_reason',
       'kick_back', 'add_inprice', 'add_info', 'bar_code', 'picture_file',
       'emp_id'],
      dtype='object')

一、时间处理:

print(data.dtypes)
detail_id                     int64
order_id                      int64
dishes_id                     int64
logicprn_name               float64
parent_class_name           float64
dishes_name                  object
itemis_add                    int64
counts                        int64
amounts                       int64
cost                        float64
place_order_time     datetime64[ns]
discount_amt                float64
discount_reason             float64
kick_back                   float64
add_inprice                   int64
add_info                    float64
bar_code                    float64
picture_file                 object
emp_id                        int64
dtype: object

为了展示字符串类型转标准时间格式,先将原来的标准时间转字符串

place_order_time=data['place_order_time'].astype('str')
print(place_order_time)
0       2016-08-01 11:05:36
1       2016-08-01 11:07:07
2       2016-08-01 11:07:40
3       2016-08-01 11:11:11
4       2016-08-01 11:11:30
               ...         
2774    2016-08-10 21:56:24
2775    2016-08-10 21:56:48
2776    2016-08-10 22:01:52
2777    2016-08-10 22:03:58
2778    2016-08-10 22:04:30
Name: place_order_time, Length: 2779, dtype: object

1、将字符串类型转为标准时间格式

data['place_order_time']=pd.to_datetime(place_order_time)
print(data.head())
   detail_id  order_id  dishes_id  logicprn_name  parent_class_name  \
0       2956       417     610062            NaN                NaN   
1       2958       417     609957            NaN                NaN   
2       2961       417     609950            NaN                NaN   
3       2966       417     610038            NaN                NaN   
4       2968       417     610003            NaN                NaN   

  dishes_name  itemis_add  counts  amounts  cost    place_order_time  \
0        蒜蓉生蚝           0       1       49   NaN 2016-08-01 11:05:36   
1       蒙古烤羊腿           0       1       48   NaN 2016-08-01 11:07:07   
2        大蒜苋菜           0       1       30   NaN 2016-08-01 11:07:40   
3       芝麻烤紫菜           0       1       25   NaN 2016-08-01 11:11:11   
4         蒜香包           0       1       13   NaN 2016-08-01 11:11:30   

   discount_amt  discount_reason  kick_back  add_inprice  add_info  bar_code  \
0           NaN              NaN        NaN            0       NaN       NaN   
1           NaN              NaN        NaN            0       NaN       NaN   
2           NaN              NaN        NaN            0       NaN       NaN   
3           NaN              NaN        NaN            0       NaN       NaN   
4           NaN              NaN        NaN            0       NaN       NaN   

       picture_file  emp_id  
0  caipu/104001.jpg    1442  
1  caipu/202003.jpg    1442  
2  caipu/303001.jpg    1442  
3  caipu/105002.jpg    1442  
4  caipu/503002.jpg    1442  

2、时间类型提取

ser.dt.时间属性:
year、month、day、hour、minute、second、
date(日期)、week(一年中第几个星期)、
quarter(第几个季节)、dayofyear(一年中的第几天)、
dayofweek(一周的第几天,0开始)、is_leap_year(是否是闰年,返回布尔值)、
daysinmonth(这个月有多少天)、
month_name()(月份名)、day_name()(星期名称)

data['year']=data['place_order_time'].dt.year
print(data['place_order_time'].head())
data['place_order_time'].dt.daysinmonth
0   2016-08-01 11:05:36
1   2016-08-01 11:07:07
2   2016-08-01 11:07:40
3   2016-08-01 11:11:11
4   2016-08-01 11:11:30
Name: place_order_time, dtype: datetime64[ns]





0       31
1       31
2       31
3       31
4       31
        ..
2774    31
2775    31
2776    31
2777    31
2778    31
Name: place_order_time, Length: 2779, dtype: int64

3、时间运算

(1)标准时间加减运算

time1=
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值