120

私は、以下の形式で、長年の温度記録を含む温度ファイルを持っています。

2012-04-12,16:13:09,20.6
2012-04-12,17:13:09,20.9
2012-04-12,18:13:09,20.6
2007-05-12,19:13:09,5.4
2007-05-12,20:13:09,20.6
2007-05-12,20:13:09,20.6
2005-08-11,11:13:09,20.6
2005-08-11,11:13:09,17.5
2005-08-13,07:13:09,20.6
2006-04-13,01:13:09,20.6

毎年異なる数、記録の時間があるので、パンダのdatetimeindicesはすべて異なります。

比較のために、同じ図に異なる年のデータをプロットしたいと思います。X軸は1月から12月、Y軸は温度です。どうすればこれを行うことができますか?

4

6 に答える 6

381

試す:

ax = df1.plot()
df2.plot(ax=ax)
于 2012-12-14T05:09:24.720 に答える
38

Jupyter/Ipython ノートブックを実行していて、使用に問題がある場合。

ax = df1.plot()

df2.plot(ax=ax)

同じセル内でコマンドを実行!! 何らかの理由で、連続したセルに分割されていると機能しません。少なくとも私にとっては。

于 2017-07-20T21:17:49.860 に答える
34

Changの回答は、同じ図に複数回プロットする方法を説明していますが、この場合は、agroupbyunstackingを使用した方がよい場合があります。

(これがデータフレームにあり、日時インデックスがすでにあると仮定します)

In [1]: df
Out[1]:
            value  
datetime                         
2010-01-01      1  
2010-02-01      1  
2009-01-01      1  

# create additional month and year columns for convenience
df['Month'] = map(lambda x: x.month, df.index)
df['Year'] = map(lambda x: x.year, df.index)    

In [5]: df.groupby(['Month','Year']).mean().unstack()
Out[5]:
       value      
Year    2009  2010
Month             
1          1     1
2        NaN     1

これで、プロットが簡単になりました(毎年別の線として):

df.groupby(['Month','Year']).mean().unstack().plot()
于 2012-12-14T10:24:59.393 に答える