# ## 一、时间处理:
# In[4]:
place_order_time = data['place_order_time'].astype('str')
# ### 1. 将字符串类型转为标准时间格式
# In[5]:
data['place_order_time'] = pd.to_datetime(place_order_time)
print(data['place_order_time'])
# ### 2.时间类型提取
# ser.dt.时间属性:
# 年--year 月--month 日--day 小时--hour 分钟数--minute 秒--second
# 日期--date 一年中的第几周--week 季节--quarter 一年中的第几天--dayofyear
# 一周的第几天--dayofweek 星期名称-- weekday_name 是否是闰年--is_leap_year
# daysinmonth--这个月有多少天
# In[6]:
data['year'] = data['place_order_time'].dt.year
print(data['place_order_time'].head())
data['place_order_time'].dt.daysinmonth.head() # 星期名称
# data['place_order_time'].dt.days_in_month.head() # 星期名称
# ### 3.时间运算
# (1) 标准时间加减运算
# In[7]:
time1 = data['place_order_time'].head()
time2 = data['place_order_time'].tail().reset_index()['place_order_time'] #重新设置索引;
print(time2-time1)
# (2)整体+ 时间戳
# weeks 星期 miliseconds 毫秒
# days 天 hours 小时 minutes 分钟 seconds 秒
# In[8]:
# data['place_order_time'] + pd.Timedelta(days=1)
(data['place_order_time'] - pd.Timedelta(hours=1)).head()
# ## 二、 分组
# 例: 每个订单应付的金额?
# In[9]:
# data.groupby(by='order_id')['amounts'].sum()
data.groupby(by='order_id')[['amounts','counts']].sum().sort_values(by='amounts',ascending=False).head()
# In[10]:
data.groupby(by='order_id')['amounts'].sum().sort_values(ascending=False)
# 三、聚合
# 1.pandas/numpy中的统计分析方法: sum/mean/ std/var
# 2.特殊函数完成聚合操作
# In[11]:
data[['amounts','counts']].agg([np.sum, np.mean, np.std])
# In[13]:
data[['amounts','counts']].agg({'amounts':np.mean, 'counts':[np.sum,np.std]})
# In[16]:
data.groupby(by='order_id')[['amounts','counts']].agg([np.mean,np.sum])['amounts']
pandas基础操作(2)
最新推荐文章于 2023-08-31 15:54:20 发布