【发布时间】:2017-12-10 15:02:43
【问题描述】:
import datetime
dates_list = ['2015-03-28 10:15:36.560000', '2015-03-28 11:35:17.820000',
'2015-03-29 13:34:54.380000', '2015-03-29 14:10:41.900000',
'2015-03-31 16:55:43.680000', '2015-03-31 16:57:58.320000',
'2015-04-02 18:54:31.480000', '2015-04-02 19:46:46.580000',
'2015-04-03 20:58:27.940000', '2015-04-03 21:30:05.600000']
df = pd.DataFrame(data=[1,2,3,np.nan,5,6,np.nan,np.nan,8,9],columns=['value'],index=[datetime.datetime.strptime(date, '%Y-%m-%d %H:%M:%S.%f') for date in dates_list])
df
Out[18]:
value
2015-03-28 10:15:36.560 1.0
2015-03-28 11:35:17.820 2.0
2015-03-29 13:34:54.380 3.0
2015-03-29 14:10:41.900 NaN
2015-03-31 16:55:43.680 5.0
2015-03-31 16:57:58.320 6.0
2015-04-02 18:54:31.480 NaN
2015-04-02 19:46:46.580 NaN
2015-04-03 20:58:27.940 8.0
2015-04-03 21:30:05.600 9.0
我想计算 2 意味着:1) 在偶数位置 [2015-03-28, 2015-03-31, 2015-04-03] 和 2) 分组在偶数位置的日子 [2015-03-29 2015-04-02]。
在这种情况下
df2 = df.groupby(df.index.day % 2).agg(np.mean)
不会工作,因为日子不连续,我对日子的位置感兴趣。
【问题讨论】:
标签: python pandas datetime dataframe