3 回答

TA貢獻1744條經驗 獲得超4個贊
但是在這種情況下,使用a groupby和unstacking 可能會更好:
(假設您已經在數據框中使用了日期時間索引)
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()

TA貢獻1802條經驗 獲得超6個贊
如果您正在運行Jupyter / Ipython筆記本并且在使用時遇到問題;
ax = df1.plot()
df2.plot(ax=ax)
在同一單元格內運行命令!由于某些原因,當它們分成順序的單元格時,它將無法工作。至少對我來說。

TA貢獻1784條經驗 獲得超8個贊
要對多個數據框執行此操作,可以對其進行for循環:
fig = plt.figure(num=None, figsize=(10, 8))
ax = dict_of_dfs['FOO'].column.plot()
for BAR in dict_of_dfs.keys():
if BAR == 'FOO':
pass
else:
dict_of_dfs[BAR].column.plot(ax=ax)
添加回答
舉報