当前位置:   article > 正文

LSTM预测实例(数据集展示)_lstm预测数据集

lstm预测数据集

数据集展示

# load and plot dataset
from pandas import read_csv
from pandas import datetime
from matplotlib import pyplot
# 加载数据
def parser(x):
	return datetime.strptime('190'+x, '%Y-%m')
series = read_csv('shampoo-sales.csv', header=0, parse_dates=[0], index_col=0, squeeze=True, date_parser=parser)
# 显示开头部分行
print(series.head())
#head( )函数表示只能读取前五行数据
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

画图

series.plot()
pyplot.show()

**运行结果:**
![在这里插入图片描述](https://img-blog.csdnimg.cn/47055c6414ee40a692e1d42bea2aff59.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAc2V2ZW5f5LiN5piv6LWb5paH,size_20,color_FFFFFF,t_70,g_se,x_16)

# 代码讲解
将数据集下载到名为“ shampoo-sales.csv ”的当前工作目录中 ”。
```bash
series = read_csv('shampoo-sales.csv', header=0, parse_dates=[0], index_col=0, squeeze=True, date_parser=parser)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

下面是对pandas的read_csv方法的讲解

header:设置导入 DataFrame 的列名称,默认为 “infer”,他与names 参数有着微妙的关系。

names:当names没被赋值时,header会变成0,即选取数据文件的第一行作为列名;当 names 被赋值,header 没被赋值时,那么header会变成None。如果都赋值,就会实现两个参数的组合功能。

下面直接上图解释:

1,两个都没有被赋值的时候:pd.read_csv('girl.csv',delim_whitespace=True)
在这里插入图片描述
2,header 赋值:

# 不指定names,指定header为1,则选取第二行当做表头,第二行下面为数据
pd.read_csv('girl.csv',delim_whitespace=True, header=1)
  • 1
  • 2

在这里插入图片描述
3,names 被赋值,header 没有被赋值:

pd.read_csv('girl.csv', delim_whitespace=True, names=["编号", "姓名", "地址", "日期"])
  • 1

在这里插入图片描述
4,names和header都被赋值:(相当于先不看names,只看header,最后再换表头)

pd.read_csv('girl.csv', delim_whitespace=True, names=["编号", "姓名", "地址", "日期"], header=0)
# header为0代表先把第一行当做表头,下面的当成数据;然后再把表头用names给替换掉。
  • 1
  • 2

在这里插入图片描述

时间处理相关参数

parse_dates(将csv中的时间字符串转换成日期格式):指定某些列为时间类型,这个参数一般搭配date_parser使用
在这里插入图片描述

import pandas as pd
df=pd.read_csv('./TestTime.csv',parse_dates=[['time','date']])
#指定parse_dates = [ ['time', 'date'] ],即将[ ['time', 'date'] ]两列的字符串先合并后解析方可。合并后的新列会以下划线'_'连接原列名命名
print(df)

'''
结果:
            time_date     name
0 2019-10-10 21:33:30    'Bob'
1 2019-10-10 21:30:15  'Jerry'
2 2019-10-10 21:25:30    'Tom'
3 2019-10-10 21:20:10  'Vince'
4 2019-10-10 21:40:15   'Hank'
'''

这种书写时: parse_dates=['time','date']
# pd.read_csv()会分别对'time', 'date'进行字符串转日期,此外还会造成一个小小的麻烦。由于本例中的Time时间列格式为'HH:MM:SS',
parse_dates默认调用dateutil.parser.parse解析为Datetime格式,在解析time这一列时,会自作主张在前面加上一个当前日期。
'''
结果:
      name                time         date
0    'Bob' 2019-10-17 21:33:30   2019-10-10
1  'Jerry' 2019-10-17 21:30:15   2019-10-10
2    'Tom' 2019-10-17 21:25:30   2019-10-10
3  'Vince' 2019-10-17 21:20:10   2019-10-10
4   'Hank' 2019-10-17 21:40:15   2019-10-10
"""

parse_dates=[0,1,2,3,4] : 尝试解析0,1,2,3,4列为时间格式;
parse_dates=[0]  :解析第0列的值作为独立的日期列

date_parse :
特定格式读取日期或时间
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

在这里插入图片描述
要按指定格式读取日期,需要①将日期列设为索引,index_col=0;②指定parse_dates=True,即按指定格式解析索引列日期;③指定目标格式,即date_parser=parser,这里parser是我提前指定的目标格式。
在这里插入图片描述

index_col = None,0,False的区别这个图很通俗易懂

import io
import pandas as pd
t="""index,a,b
hi,hello,pandas,"""    #故意在pandas后面多打了一个“,”
df = pd.read_csv(io.StringIO(t),index_col = 0)
print(df)
df = pd.read_csv(io.StringIO(t),index_col = False)
print(df)
df = pd.read_csv(io.StringIO(t),index_col = None)
print(df)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

输出结果:

    index       a   b
hi  hello  pandas NaN
  index      a       b
0    hi  hello  pandas
    index       a   b
hi  hello  pandas NaN
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

如果index_col是None或者0,他们输出时候都会多了个NaN,而且都将第一列作为行号。

而False不会用第一列作为行号,同时还会丢弃最后一列错误的值。

额外知识:
# Pandas 数据结构 - Series
import pandas as pd

a = [1, 2, 3]

myvar = pd.Series(a)

print(myvar)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

在这里插入图片描述

sep:读取csv文件时指定的分隔符,默认为逗号。注意:"csv文件的分隔符""我们读取csv文件时指定的分隔符" 一定要一致。
  • 1

原本的csv数据集:(连在一起了)
在这里插入图片描述

pd.read_csv('girl.csv', sep='\t')   #结果如下图
  • 1

在这里插入图片描述
这是知乎的超级详细的解释

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/751786
推荐阅读
相关标签
  

闽ICP备14008679号