Я использую панды 0.20.2.
Я получаю противоречивые результаты при агрегировании смешанного фрейма данных dtype.Вот некоторые примеры данных:
import pandas as pd
import numpy as np
df=pd.DataFrame(data=pd.date_range('20100201', periods=10,
freq='5h3min'),columns=['Start'])
df.loc[:,'End']=df.loc[:,'Start']+pd.Timedelta(4,'h')
df.loc[:,'Value']=42.0
df.loc[:,'Dur']=df.loc[:,'End']-df.loc[:,'Start']
Я хочу применить некоторые функции как к Dur
(float
), так и к Value
(np.timedelta64
).В частности, комбинируя np.nansum
и np.nanmax
, я получаю следующее:
**df.resample('1D',on='Start')['Dur','Value'].agg([np.nansum,np.nanmedian])**
Out[16]:
Value
nansum nanmedian
Start
2010-02-01 210.0 42.0
2010-02-02 210.0 42.0
Столбцы 'Dur' молча игнорируются и отбрасываются, тогда как при применении только np.nansum
Iполучить ожидаемый результат, включая оба столбца
f.resample('1D',on='Start')['Dur','Value'].agg([np.nansum])
Out[17]:
Dur Value
nansum nansum
Start
2010-02-01 20:00:00 210.0
2010-02-02 20:00:00 210.0
Как получить то же самое при применении nanmedian
?Или как получить все ожидаемые столбцы в многоуровневом фрейме данных, возвращенные в *?