我有一个数据帧如下:
ticker fy fp value f_date rn
MSFT 2009 0 144 2010-01-01T12:12:34 0
AAPL 2010 0 144 2010-01-01T12:12:34 0
MSFT 2009 0 48 2014-05-01T12:12:34 1
AAPL 2011 0 80 2012-01-01T12:12:34 1
GOOG 2010 0 40 2010-01-01T12:12:34 0
我只想根据ticker
,fy
,fp
对这些数据进行分组,如下所示
df.groupby(by=['ticker', 'fy', 'fp'])
在此基础上,我只想计算max
和min
的差值,然后除以max of rn
。例如,组MSFT, 2009, 0
,max date是2014-05-01T12:12:34
,min date是2010-01-01T12:12:34
,maxrn
是1,所以我想把它计算成max(f_date) - min(f_date)/ max(rn+1)
。因此,我将得到这两个日期之间的天数,因此我可以将这些数据与其他数据进行映射以进行一些分析
在groupby之后我无法前进。你知道吗
对于0.25+,可以使用named aggregations,然后减除列:
或者,如果需要,通过^{} 将日期时间差(timedelta)转换为秒:
旧版本的解决方案:
如有必要,将
MultiIndex
转换为列:相关问题 更多 >
编程相关推荐