逐行绘制DataFrame

时间:2019-09-09 15:53:13

标签: pandas dataframe matplotlib pandas-groupby

我有一个相对较小的DataFrameGroupBy。以下是我每天的全部数据。尽管将需要数年的时间。

            day loc_source loc_target  count
0  1.566691e+09       east       east   1768
1  1.566691e+09       east       west    559
2  1.566691e+09    unknown       east     73
3  1.566691e+09    unknown       west    160
4  1.566691e+09       west       east     53
5  1.566691e+09       west       west   1563

现在,我要绘制以下内容:countdayloc_sourceloc_target的每个唯一组合用一行。共6条线。 1个情节。

我可以通过遍历行来做到这一点,但是我不认为这是正确的方法。如何在matplotlib中绘制此图?

编辑:由于是情节,因此我无法添加预期的输出。但我可以描述一下:该图应在y轴上显示0到2000之间的数字(标签计数),而在x轴上显示一个数据点(1.55591e+09)(目前,这当然会改变一旦我使用完整的数据集)。情节上有6条线:

LEGEND       y VALUE
east east       1768
east west        559
unknown east      73
unknown west     160
west east         53
west west       1563

1 个答案:

答案 0 :(得分:1)

您可以先使用pivot来重组数据。首先,我们使用东/西值创建一个新列:

df['eastwest'] = df['loc_source'] + df['loc_target']

然后我们重新构建您的数据并绘制图:

df.pivot(index='day', columns='eastwest', values='count').plot()

这会将日期移动到索引中,并为loc_source和loc_target的每种组合创建列。调用图将在每列中创建一条线,其中日期在x轴上,而计数在y轴上。