【发布时间】:2019-08-21 13:19:57
【问题描述】:
如何使用 Python 绘制时间序列图? 由于在数据集中,时间分为年和期间(如 M1、M2 的月份)。
我正在使用matplotlib,但不知道如何分配时间。
我写的获取数据的代码: 将熊猫导入为 pd 从熊猫导入数据框 data1 = pd.read_csv('CUUR0000SA0.txt',标题 = 无) data2 = pd.read_csv('SUUR0000SA0.txt',标题 = 无) 数据 = pd.concat([data1, data2]) data.columns = ["a"] 数据 = 数据帧(数据) 打印(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 | |
图表应根据时间段使用图表来解释值的趋势。但我不知道如何先将其转换为正确的格式。
【问题讨论】:
-
嗨,桑迪,您使用的是 pandas 还是 numpy?您将需要使用 datetime 包,但答案可能取决于您的数据的结构。
-
哦,我是用pandas数据框来存储上面的数据的。
-
从这个问题中我不清楚您希望生成的图表是什么样子。你都尝试了些什么?例如
df.plot()能得到你需要的东西吗?df.sort_values(['year', 'period']).plot(x='period', y='value')怎么样? -
问题是我想显示基于年份和期间的价值趋势。但我不知道如何将这一列数据集转换为具有多列的数据框。
标签: python pandas matplotlib time-series