暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

python基础学习6【DatatimeIndex与PeriodIndex函数+Timedelta类+连接数据库+agg()函数和aggregate()函数】

原创 Twilight 2023-06-22
229


转换与处理时间序列数据  

转换字符串时间为标准时间:

Timestamp类型:最基础最常用。

pd.to_datetime(data['lock_time'])#转换


如果超出时间戳最大值,最小值,时间戳存储可能不成功 :


DatatimeIndex与PeriodIndex函数【其实俺暂时不懂这俩能干啥呜呜呜】

pd.DatetimeIndex(data['use_start_time'])pd.PeriodIndex(data['use_start_time'],freq='S')


Timedelta类

不仅能够使用正数,也能使用负数;

可以轻松实现在某个时间上加减一天。

data['lock_time']+pd.Timedelta(days=1,seconds=1)#后移一天(无月,年)+1秒


使用分组聚合进行组内计算

groupby():    使用groupby方法拆分数据;

如果传入的是一个函数,则对索引进行计算并分组。

看实操:(以下的东西比较硬核)

当我想连接数据库读取数据时报错了:(主打的就是想试试数据库了好久没用过了)

import pandas as pd#622from sqlalchemy import create_engineengine = create_engine('mysql+pymysql://root;123456root@127.0.0.1:3306/test/?charset=utf8')


没事,我们一个一个解决:

打开cmd,输入命令:

pip3 install pymysql


完了之后再运行好像就没有报错了:(后面有问题再解决)


然后读取数据:


嘿嘿,又报错啦,解决一下:


改了一会儿发现代码有些地方写错了,修改如下:

import pandas as pd#622from sqlalchemy import create_engineengine = create_engine('mysql+pymysql://root:123456root@58.0.20.242:3306/test?charset=utf8')


但是它依然有错误:


解决:(这是因为数据库没有导入该数据产生的错误)【以下步骤看不懂见后面详解1


完了之后问题就解决完啦:


分组计算频数等其他操作:


在求和时遇到了一些问题,有小伙伴知道为啥可以为我解答一下,呜呜(难道是我导入数据的时候出问题了吗???)【已解决。文末附解决方案,见详解2,确实是导入的时候出问题勒,数据类型没有更换!


使用agg方法聚合函数

agg()函数和aggregate()函数

可以使用agg方法一次求出当前数据中所有菜品销量和售价的总和与均值。



详解1:

打开俺们的navicat,建一个test数据库:

后面的步骤全部默认。(哈哈)


详解2:

在经过一段时间的琢磨后,我发现其实在前面读入数据的时候就已经产生一点错误了:


然鹅,NAN与NA的区别在于:(我简单理解为它们的数据类型不一样)

所以,我们就要让右边这个改过来~~~:【这里需要说明一下,如果用的是pandas直接的函数打开是没有问题的,出现问题是因为我是以连接数据库那种方式打开,所以产生了一点子问题。问题就在于前面说了个后面的步骤都默认哈哈哈】

改的方法:


很好,这样弄完了之后,前面的错误也都解决了不会出现像上面奇奇怪怪的数字了。

后面的正确数据都不截图了。(此期逻辑很混乱是因为俺不想重新理思路写勒,如果以后有机会做到类似的再出2.0版本)

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论