pandas基础操作(2)

# ## 一、时间处理:

# 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']
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值