python - 如何使用 Python 绘制时间和价值的时间序列图
问题描述
如何使用 Python 绘制时间序列图?由于在数据集中,时间被分割为年和周期(如 M1、M2 的月份)。
我正在使用 matplotlib,但不知道如何分配时间。
我写的获取数据的代码: import pandas as pd from pandas import DataFrame data1 = pd.read_csv('CUUR0000SA0.txt', header = None) data2 = pd.read_csv('SUUR0000SA0.txt', header = None) data = pd.concat([data1, data2]) data.columns = ["a"] data = DataFrame(data) print(data.head())
但是,输出数据框只有一列。
部分数据集如下所示:
+-------------+------+--------+---------+-----------+
| series id | year | period | value | footnotes |
+-------------+------+--------+---------+-----------+
| CUUR0000SA0 | 2014 | M12 | 234.812 | |
| CUUR0000SA0 | 2014 | M11 | 236.151 | |
| CUUR0000SA0 | 2014 | M10 | 237.433 | |
| CUUR0000SA0 | 2014 | M09 | 238.031 | |
| CUUR0000SA0 | 2014 | M08 | 237.852 | |
该图表应根据时间段使用图表来解释值的趋势。但我不知道如何先将其转换为正确的格式。
解决方案
这些是获得解决方案的步骤:
- 将周期值转换为数字
- 添加一列,其中值是年份和期间的组合
- 绘制时间序列
这是代码:
import pandas as pd
from datetime import datetime
df = {0: {"series id":"CUUR0000SA0", "year":2014, "period":"M12", "value":234.812},
1: {"series id":"CUUR0000SA0", "year":2014, "period":"M11", "value":236.151},
2: {"series id":"CUUR0000SA0", "year":2014, "period":"M10", "value":237.433},
3: {"series id":"CUUR0000SA0", "year":2014, "period":"M09", "value":238.031},
4: {"series id":"CUUR0000SA0", "year":2014, "period":"M08", "value":237.852},
}
d = {'M01':1,
'M02':2,
'M02':3,
'M04':4,
'M05':5,
'M06':6,
'M07':7,
'M08':8,
'M09':9,
'M10':10,
'M11':11,
'M12':12,}
df = pd.DataFrame.from_dict(df, orient="index")
df.period = df.period.map(d)
df['date'] = pd.to_datetime(df.year.astype(str) + '/' + df.period.astype(str) + '/01')
df.plot(x='date', y='value')
推荐阅读
- android - 在“androidx.fragment.app.Fragment”中请求权限和onRequestPermissionResult
- regex - 如何制作一个正则表达式,从逗号分隔的单元格列表中提取所有单元格编号并从每个单元格中减去一个常数值?
- vue.js - 在内存中打开threejs Compressed OBJ进行渲染
- sql-server - 使用 openrowset 时如何避免在 Excel 工作表末尾插入空行
- c - 通过路由器的 ARP 响应
- symfony - 从 type_options 访问实体属性
- vba - 以编程方式包括/排除 MS Access 现代图表中的列
- python - 使用带有掩码数组的 numpy.unique 会出现一些奇怪的问题
- html - bootstrap:对齐 td 内的两个 div
- azure-functions - 在 Azure Function 2x 中获取访问 HttpTrigger 的主密钥