时间格式方便表走日期的索引 日期加索引_datetime 索引

今天才查询1元版的用户新增的时候,又用到了透视表,本想耐着性子看看pandas的用户手册,结果发现自己太高估了自己,只有带着问题去学东西,才是最快的。


时间格式方便表走日期的索引 日期加索引_时间格式方便表走日期的索引_02

将今天撸的代码先贴这儿复习下:

import pandas as pd
import numpy as np

df=pd.read_csv(r'E:\工作计划\周例会数据分享\2020.6.19\1元版活激活数据.csv',sep=',')df2=pd.read_csv(r'E:\工作计划\周例会数据分享\2020.6.19\组织及活动对应单日新增用户.csv',sep=',')df2.sum()有点意思,结果截图如下:


时间格式方便表走日期的索引 日期加索引_2020年周数和日期对应表_03


df2.sum(axis=0),这个结果页好玩,对每个字段都求和,依稀觉得和上面的没啥区别了。

时间格式方便表走日期的索引 日期加索引_2020年周数和日期对应表_04

df2.cumsum(),这个效果我觉得是来搞笑的:


时间格式方便表走日期的索引 日期加索引_datetime 索引_05

df2.describe()这个结果看着也蛮友好的:


时间格式方便表走日期的索引 日期加索引_2020年周数和日期对应表_06

sum(df2['用户数'])嗯,这个是想看共有多少用户。df3=df2.pivot_table(index=['欢乐返类型'],columns=['实体组织'],values=['用户数'],aggfunc=[np.sum]):生成透视表df4=df2.pivot_table(index=['欢乐返类型','实体组织'],values=['用户数'],aggfunc=[np.sum]):另一个透视表

dftt=df4.unstack():将多重索引转为单索引 dfzz=df3.reset_index(level=None,drop=False,inplace=False,col_level=0,col_fill=''):将多重索引转为单索引的另一种方法,会在原有结果基础上新增一列索引dftt.columns=dftt.columns.get_level_values(0):列名为三个元素的数组,这里将首行的列名赋值为列名 dftt.columns=['盛POS用户量','超级盛POS用户量']:重命名,第一个为索引,不能重命名 上次的遗留问题,在此已解决完了,虽然没弄懂,但是问题已经解决了。这简直就是:只要百度用的好,学习没烦恼。 现在来看另一问题: 导入的数据的日期格式为文本格式,如果要看每个月的数据,透视的结果是满足不了要求的。 ①将文本格式转为日期格式:df2['date']=pd.to_datetime(df2['商户注册时间']),这个函数似曾相识有木有,就是神策里面也有这个函数来的,在将时间戳转为日期格式之后,这个函数直接转为日期的格式。 ②新增年和月字段,因为这个数据没有涉及到跨年,所以只要月份这个字段就可以了:df2['month']=df2.date.dt.month。

时间格式方便表走日期的索引 日期加索引_2020年周数和日期对应表_07


恩,忙乎了大半天,其实总结的笔记就这么点,大部分时间都在报错和纠错还有百度。

对用户数进行求和:sum(df2['用户数'])

查看各字段的属性:df2.dtypes

查看数据集的属性:type(df2)

新增一列将文本格式转为日期格式:df2['date']=pd.to_datetime(df2['商户注册时间'])

将日期中的年月进行提取并新增字段:df2['year']=df2.date.dt.year,df2['month']=df2.date.dt.month

将透视表的多重索引进行重新设置:dfzz=df3.reset_index(level=None,drop=False,inplace=False,col_level=0,col_fill='')

将多重列名仅取首行值进行重命名:df3.columns=df3.columns.get_level_values(0)

重命名列名:dfzz.columns=['activity_type_no','盛POS用户','超级盛POS用户']

今日偶得:在不停的实践中,才能记住知识点并解决问题。