我想弄明白int
或float
加權平均值datetime
字段的方式。我正在考慮將datetime
轉換爲int
,然後進行數學運算,然後轉換回datetime
。但不知道如何去做。任何幫助深表感謝。DataFrame中的Int/Float加權平均日期時間
我應該在這裏更清楚。實際的問題是這樣做
>>> df1 = pd.DataFrame({'Date': {0: '2016-10-11', 1: '2016-10-11', 2: '2016-10-11', 3: '2016-10-11', 4: '2016-10-11',5: '2016-10-11'}, 'Qty': {0: 100, 1: 3232, 2: 4232, 3: 4322, 4: 666, 5: 98}, 'StartTime': {0: '08:00:00.241', 1: '08:00:00.243', 2: '12:34:23.563', 3: '08:14:05.908', 4: '18:54:50.100', 5: '10:08:36.657'},'Id':{0:'abc',1:'abc',2:'bcd',3:'bcd',4:'abc',5:'bcd'}})
>>> df1
Date Id Qty StartTime
0 2016-10-11 abc 100 08:00:00.241
1 2016-10-11 abc 3232 08:00:00.243
2 2016-10-11 bcd 4232 12:34:23.563
3 2016-10-11 bcd 4322 08:14:05.908
4 2016-10-11 abc 666 18:54:50.100
5 2016-10-11 bcd 98 10:08:36.657
>>> df1['StartTime'] = pd.to_datetime(df1['Date'] + ' ' + df1['StartTime'])
>>> df1['StartTime'][0]
Timestamp('2016-10-11 08:00:00.241000')
現在我想GROUPBY Id
,並採取Qty
加權StartTime
。請注意,StartTime
也具有微秒組件。
以下似乎不起作用,即使StartTime
列的每個產品Timestamp
:
>>> (df1.groupby['Id']).apply(lambda x:np.average(x['StartTime'], weights=x['Qty']))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'instancemethod' object has no attribute '__getitem__'
一些代碼將有助於證明你的問題更好。 –