【发布时间】:2018-05-22 09:24:21
【问题描述】:
我正在使用熊猫 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我得到了预期的结果,包括两列
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时如何得到同样的结果?或者如何获取 * 处返回的多级数据框中的所有预期列?
【问题讨论】: