我正在研究劳工统计局的通货膨胀统计数据,它们是这样呈现的:
我想做一个非常简单的折线图(可能会使用altair
,但这与问题不完全相关)。
在Pandas中,重新构造DataFrame以准备时间序列可视化的最有效/最惯用的方法是什么?
注:这基本上是这个问题的逆问题:https://stackoverflow.com/questions/48211424/how-to-make-a-years-on-y-axis-and-months-on-x-axis-plot-with-pandas
我正在研究劳工统计局的通货膨胀统计数据,它们是这样呈现的:
我想做一个非常简单的折线图(可能会使用altair
,但这与问题不完全相关)。
在Pandas中,重新构造DataFrame以准备时间序列可视化的最有效/最惯用的方法是什么?
注:这基本上是这个问题的逆问题:https://stackoverflow.com/questions/48211424/how-to-make-a-years-on-y-axis-and-months-on-x-axis-plot-with-pandas
2条答案
按热度按时间blmhpbnm1#
对于这样的表,我称之为
bls_df
:通过设置索引然后取消堆叠来重新成形。
通过以可解析格式连接月份和年份列来生成日期:
我也希望您知道BLS已经以长格式存储了数据,您可以直接使用
pd.read_csv(THE_URL, sep='\s+')
读取它,其中THE_URL
是以下链接:https://download.bls.gov/pub/time.series/cu/cu.data.0.Current。您仍然需要做一些工作来生成datetime
列,并根据BLS分配的系列代码进行过滤,但这并不太困难。jogvjijk2#
可能有一种更优雅的方法来实现这一点,但是您可以循环遍历所有month列,并将其与year列中的所有值组合以获得
year-month
,然后将这些值和year-months一起存储在pd.Series
中。例如,我们可以创建一个与您的 Dataframe 类似的 Dataframe :
把它变成一个时间序列:
一个二个一个一个