我试着用熊猫来处理每天的数据。下面是我的代码,数据和电流输出。但是,函数getUniqueDates()必须遍历full df才能获得列表中的唯一日期,如下所示。有没有简单有效的方法来获取每天的数据,这些数据可以传递给函数processDataForEachDate()。遍历大列表是很费时的,为了保持简单,我在本例中已剥离了列。你知道吗
data = {'date': ['2014-05-01 18:47:05.069722', '2014-05-01 18:47:05.119994', '2014-05-02 18:47:05.178768', '2014-05-02 18:47:05.230071', '2014-05-02 18:47:05.230071', '2014-05-02 18:47:05.280592', '2014-05-03 18:47:05.332662', '2014-05-03 18:47:05.385109', '2014-05-04 18:47:05.436523', '2014-05-04 18:47:05.486877'],
'noOfJobs': [34, 25, 26, 15, 15, 14, 26, 25, 62, 41]}
df = pd.DataFrame(data, columns = ['date', 'noOfJobs'])
df = df.astype(dtype= {"date":'datetime64[ns]'})
print(df)
#Ouput====================================
date noOfJobs
0 2014-05-01 18:47:05.069722 34
1 2014-05-01 18:47:05.119994 25
2 2014-05-02 18:47:05.178768 26
3 2014-05-02 18:47:05.230071 15
4 2014-05-02 18:47:05.230071 15
5 2014-05-02 18:47:05.280592 14
6 2014-05-03 18:47:05.332662 26
7 2014-05-03 18:47:05.385109 25
8 2014-05-04 18:47:05.436523 62
9 2014-05-04 18:47:05.486877 41
def getUniqueDates():
todaysDate = datetime.datetime.today().strftime('%Y-%m-%d')
listOfDates=[]
for c,r in df.iterrows():
if r.date.date() != todaysDate:
todaysDate=r.date.date()
listOfDates.append(todaysDate)
return listOfDates
listOfDates = getUniqueDates()
print(listOfDates)
# Output====================================
[datetime.date(2014, 5, 1),
datetime.date(2014, 5, 2),
datetime.date(2014, 5, 3),
datetime.date(2014, 5, 4)]
for eachDate in listOfDates:
processDataForEachDate(eachDate)
您可以通过以下方式访问唯一日期的NumPy数组:
dt
是熊猫系列df.date
的访问器方法。基本上,它是一个类,充当一组日期时间相关方法的属性接口。好处是它是矢量化的(请参见here与Pandas开发人员的.iterrows()
进行比较),并且访问器方法也使用“缓存属性”设计:相关问题 更多 >
编程相关推荐