wangwei
机器学习, 数据采集, 数据分析, web网站,IS-RPA,APP
数据分析 Pandas python基础 • 0 回帖 • 524 浏览 • 2019-07-29 14:28:17
机器学习, 数据采集, 数据分析, web网站,IS-RPA,APP
数据分析 Pandas python基础 • 0 回帖 • 524 浏览 • 2019-07-29 14:28:17
pandas 时间序列的优化转化
#!/usr/bin/env Python3
__author__ = '未昔/angelfate'
__date__ = '2019/7/26 9:58'
# -*- coding: utf-8 -*-
print(pd.__version__) # 我喜欢用 0.22.0。新的版本少了一些方法。画图 之类
# 文件有中文名字,记得加上 engine='python'。或者 pd.read_csv(open('中文路径文件'))。
df = pd.read_csv(r'E:\jupyter-notebook\大数据技术\数据分析-机器学习\豆瓣电影反贪风暴4+票房+数据抓取+数据分析\DouBanFilm_FanTanFengBao4.csv',engine='python', encoding='utf8')
print(df.head())
print('-'*40,'打印数据类型')
print(df.dtypes) # 打印类型
print('-'*40,'打印指定坐标数据')
print(df.iat[0,0]) # 打印第 (0,0) 个数据
print('-'*40,'date_time列格式化为datetime对象序列')
# object对象是一个容器,不仅仅能够装str,任何不能转换的数据类型都可以。如果以string类型处理date是不高效的,并且耗内存。
# 针对时间序列数据,可以将date_time列格式化为datetime对象序列(Pandas中称为Timestamp)。
df['发布日期'] = pd.to_datetime(df['发布日期'])
df['发布时间'] = pd.to_datetime(df['发布时间'])
print(df['发布日期'].dtype, df['发布时间'].dtype) # 打印类型
print(df.head()) #
print('-'*40,'时间测试')
# date_time的格式已经自动转化了,但这还没完,在这个基础上,我们还是可以继续提高运行速度的。如何提速呢?为了更好的对比,我们首先通过 timeit 装饰器来测试一下上面代码的转化时间。
# 定义一个计时器,传入一个,并返回另一个附加了计时功能的方法
# 上面日格式转换代码看起来简单,但是执行效率如何呢?我们使用@timeit来测试一下,
@timeit
def convert(df, column_name):
print('法1:')
return pd.to_datetime(df[column_name])
convert(df, '发布日期')
@timeit
def convert_with_format(df, column_name):
print('法2:')
return pd.to_datetime(df[column_name],format='%Y-%M-%D')
convert_with_format(df, '发布日期')