我有一个有间隙的数据框
temperature
data
2016-01-01 01:00:00 -8.2
2016-01-01 02:00:00 -8.3
2016-01-01 03:00:00 -9.1
2016-01-01 04:00:00 -9.1
2016-01-01 05:00:00 -9.6
... ...
2020-02-29 20:00:00 5.9
2020-02-29 21:00:00 5.4
2020-02-29 22:00:00 4.7
2020-02-29 23:00:00 4.3
2020-03-01 00:00:00 4.3
以下是一些示例数据的代码,与我的不同,但概念相同:
def tworzeniedaty():
import pandas as pd
rng1 = list(pd.date_range(start='2016-01-01', end='2016-02-29', freq='D'))
rng2 = list(pd.date_range(start='2016-12-15', end='2017-02-28', freq='D'))
rng3 = list(pd.date_range(start='2017-12-15', end='2018-02-28', freq='D'))
rng4 = list(pd.date_range(start='2018-12-15', end='2019-02-28', freq='D'))
rng5 = list(pd.date_range(start='2019-12-15', end='2020-02-29', freq='D'))
return rng1 + rng2 + rng3 + rng4 + rng5
import random
import pandas as pd
lista = [random.randrange(1, 10, 1) for i in range(len(tworzeniedaty()))]
df = pd.DataFrame({'Date': tworzeniedaty(), 'temperature': lista})
df['Date'] = pd.to_datetime(df['Date'], format="%Y/%m/%d")
相反,我想得到:
这与How to plot only specific months in a time series of several years?是同一个问题,但我想用python来做,并且不能破译R代码
我们可以通过计算日期之间的差异并检查是否超过三个月这样的限制来对数据进行分组:
样本输出:
显然,如果存在更多的组,则需要进行一些微调。在这种情况下,网格将是合适的-可以create a subplot grid and remove unnecessary subplots like in this matplotlib example。x标签可能还需要使用a matplotlib Locator and Formatter进行一些调整,以获得更好的外观。其中一些可以使用带有^{} in seaborn 的分组变量自动完成;然而,这可能会导致一系列不同的问题
我认为最好的方法是过滤掉Jun/Jul/Aug数据,就像R代码中所做的那样。这将有助于:
相关问题 更多 >
编程相关推荐