我有一个数据框(mydata),包含4个三年(从2016-01-23到2019-10-12)内的10000多个样本,其中包括一个“日期”作为特征之一。我想根据季节(春季、夏季、秋季和冬季)将数据帧(mydata)划分为4个数据帧。这是我的数据框:
mydata:
f1, f2, f3, date
s1 23, 2.5, 0.3, 2016-04-03
s2 03, 0.5, 1.3, 2017-08-01
s3 14, 4, 2.3, 2016-10-02
....
sn 09, 4.3, 32, 2019-03-03
因此,me期望的输出应该是四个数据帧(春季、夏季……)。例如,四季中春季记录的数据应放在第一个数据帧(spring)中,以此类推:
Spring=[the data which are logged during the spring (from march 1 to May 31) during the four years]
Summer=[the data which are logged during the spring (fro June 1 to August 31) during the four years]
.....
我可以像这样手动处理,比如一个赛季,但我想要一种更有效的方式:
season1=pd.DataFrame()
season1=season1.append(mydata[(mydata['date']>'2016-03-01') & (mydata['date']<'2016-05-31') ])
season1=season1.append(mydata[(mydata['date']>'2017-03-01') & (mydata['date']<'2017-05-31') ])
season1=season1.append(mydata[(mydata['date']>'2018-03-01') & (mydata['date']<'2018-05-31') ])
season1=season1.append(mydata[(mydata['date']>'2019-03-01') & (mydata['date']<'2019-05-31') ])
快速创建类似于数据集的内容
看起来像:
然后,您可以通过
为了得到几个月的时间,只需叠加条件(例如所有一月和二月)
最后,为了获得更大的灵活性,可以定义一个任意3个月的函数
例如:
相关问题 更多 >
编程相关推荐