栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Pandas学习(二)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Pandas学习(二)

一. datetime再了解

1.pd.to_datetime(df['date']).dt.date ==>得到的是含有精确到天的日期,格式为object而不是datetime

 如上图为自测数据,可以看到dt.date格式为object但是只精确到天

类推:pd.to_datetime(df['date']).dt.month==>只得到date数据的月份,类型为int型

        pd.to_datetime(df['date']).dt.year==>只得到date数据的年份,类型为int型

        pd.to_datetime(df['date']).dt.day==>只得到date数据具体的几号(没有月和年),类型为int型

二.各种数量统计及其意义:count(),size(),sum()

1.count()

①字符串str.count('具体字符')可以得到字符串含有的字符数量

 ②列表中list.count(内容)可以得到内容在列表中含有的个数

③pandas应用 

df.count()==>得到的是非空值的总个数(只有np.nan才是空值,空字符串也是会技数的哦!)

df = pd.DataFrame({'a':[1,np.nan,2]})
number = df['a'].count()
print(number)

代码结果:2           #np.nan为空值,count()不计入

④count_values()与count()

count_values()计算出不同值的个数分别是多少

 如上图,value_counts()(正如它的中文解释)得到变量'A','B','C','D'的具体数量。


value_counts(normalize=False, sort=True, ascending=False, bins=None, dropna=True)

具体参数含义:

1.normalize : boolean, default False 默认false,如为true,则以百分比的形式显示

2.sort : boolean, default True 默认为true,会对结果进行排序

3.ascending : boolean, default False 默认降序排序

4.bins : integer, 格式(bins=1),意义不是执行计算,而是把它们分成半开放的数据集合,只适用于数字数据

5.dropna : boolean, default True 默认删除na

2.sum() ==>为求和。  df['data']==>若为数字则求出该列所有数字的和,若是字符串则合并字符串

三.日期差(timedelta)

pandas中to_timedelta的使用:

pd.to_timedelta(arg,unit=None,error='raise')

其中,arg为要转化成timedelta的数据,格式可以是:str,timedelta,Series;unit为单位,例如:'D'表示天;error可以是'ignore','raise','coerce'三种,如果为'raise'则无效解析将引发异常,如果为'ignore'则无效解析将输入返回。

实际使用:客户留存率问题(例子:客户在2022年11月连续登入超过n天(n<28)的客户信息)

个人思路:(方法类似sql取数)

①首先,将客户日期字段转化成到天的格式,通过判定筛选2022年12月的所有信息。

②将所有信息按照客户的唯一标识use_id分类,通过rank()函数进行排名,通过time_delta将日期和排名做差,如果差值一样说明为连续的天(这边需要将每个个体按天去重,防止同一天登录多算)。如下图,为某一用户的登录日期,验证上述说法正确。

例子
2021-12-312 day
2021-12-523 day
2021-12-633 day
2021-12-743 day

③取用户分组后按日期差那列的value_counts()的最大值==>这个表示最大的连续登录时间,最后判断这个天数与n的关系得到结果。

(若想做连续登录天数的题,可以做牛客的python数据分析的第33题练手!)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1029420.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号