【问题标题】:I want to create a time series of monthly means in Pandas我想在 Pandas 中创建每月均值的时间序列
【发布时间】:2017-05-28 05:06:21
【问题描述】:

我有一个数据框,其中包含一整年的每小时数据。我想计算每月平均值并在时间序列图中显示它们。我有一个变量是 NO2 值。

#Cleaning data
ck_2000 = pd.read_csv('2000-CamdenKerbside.csv', header=0,skiprows=4,usecols=range(0,3),skipfooter = 1, na_values = 'No data',engine  = 'python')
colnames = ['Date', 'Time', 'NO2'] 
ck_2000.columns = colnames

#Reformat date/time
ck_2000.Time.replace(to_replace = '24:00:00', value = '00:00:00', inplace = True)
dtw = pd.to_datetime(ck_2000.Date + ck_2000.Time,format='%d/%m/%Y%H:%M:%S')
ck_2000.index = dtw

#Index dataframe by date
firstDate = ck_2000.index[0]
lastDate = ck_2000.index[len(ck_2000.Date) - 1]
ck2000 = ck_2000.reindex(index=pd.date_range(start = firstDate, end =lastDate, freq = '1H'), fill_value= None)

#Change data type to float
ck2000['NO2'] = ck2000['NO2'].dropna().astype('int64')

#Interpolation
ck_2000_int = ck_2000.interpolate()

#df's for all months
ck_2000_jan =  ck_2000_int['2000-01']
ck_2000_feb = ck_2000_int['2000-02']
ck_2000_mar = ck_2000_int['2000-03']
ck_2000_apr = ck_2000_int['2000-04']
ck_2000_may = ck_2000_int['2000-05']
ck_2000_jun = ck_2000_int['2000-06']
ck_2000_jul = ck_2000_int['2000-07']
ck_2000_aug = ck_2000_int['2000-08']
ck_2000_sept = ck_2000_int['2000-09']
ck_2000_oct = ck_2000_int['2000-10']  
ck_2000_nov = ck_2000_int['2000-11']
ck_2000_dec = ck_2000_int['2000-12']

【问题讨论】:

    标签: python pandas plot time-series


    【解决方案1】:

    你应该可以使用resample
    考虑下面的例子

    tidx = pd.date_range('2000-01-01', '2000-12-31 23:00', freq='H')
    ck_2000_int = pd.DataFrame(dict(NO2=np.random.randn(len(tidx))), tidx)
    
    ck_2000_int.resample('M').mean().plot()
    

    【讨论】:

    • 我收到以下错误 - “未知日期时间字符串格式,无法解析:NO2”
    猜你喜欢
    • 1970-01-01
    • 2021-02-05
    • 1970-01-01
    • 2014-12-08
    • 2016-06-29
    • 1970-01-01
    • 2020-08-22
    • 2016-07-18
    • 2018-11-30
    相关资源
    最近更新 更多