用熊猫在列中绘制带有年份的数据框

Posted

技术标签:

【中文标题】用熊猫在列中绘制带有年份的数据框【英文标题】:Plot dataframe with years in columns with pandas 【发布时间】:2015-05-27 14:03:59 【问题描述】:

我有一个看起来像这样的数据框:

country,2010,2011,2012
Afghanistan,1,2,3
Belize,5,3,2
England,3,3,4

我想绘制这个数据框,以便在折线图中用一条线表示每个国家/地区,其中 x 轴代表年份。

我该怎么做?

【问题讨论】:

df.plot(y = ['2010','2011','2012'], x='country') 做你想做的事吗? 很遗憾没有。这实际上返回了一个相当奇怪的结果 你能发布你的情节应该是什么样子吗,谢谢 它应该只是按年份绘制每个国家/地区的值。像这张图:investing.curiouscatblog.net/wp-content/uploads/2010/06/… 好的,但在那个例子中,顺便说一下,年份是 x 轴 【参考方案1】:

我认为您可能需要重塑数据框:

%matplotlib inline
from io import StringIO
import pandas as pd
import matplotlib as mpl
mpl.rc("figure", figsize=(8,6))

data = """
country,2010,2011,2012
Afghanistan,1,2,3
Belize,5,3,2
England,3,3,4
"""

df = pd.read_csv(StringIO(data))
reshaped_df = pd.melt(df, id_vars=["country"], var_name="year")
df = reshaped_df.pivot(index='year', columns='country', values='value')

df.plot()

【讨论】:

纯真棒。谢谢!

以上是关于用熊猫在列中绘制带有年份的数据框的主要内容,如果未能解决你的问题,请参考以下文章

如何使用点绘制熊猫数据框的两列

我可以使用带有熊猫数据框的散点图绘制回归线并显示参数吗?

如何从包含文本的熊猫数据框中的列中提取年份(或日期时间)

熊猫数据框:用分组绘制直方图

使用日期时间绘制切片熊猫数据框时出现 KeyError

Python:用 groupby 绘制熊猫数据框 - 奇怪的输出