通过组中的第一个值规范化数据

时间:2018-12-19 15:58:40

标签: python pandas dataframe group-by

我有一个600万行的日内数据数据框,如下所示:

                          closingDate      Time    Last 
1997-09-09 11:30:00-04:00  1997-09-09  11:30:00    100
1997-09-09 11:31:00-04:00  1997-09-09  11:31:00    105

我想以矢量化的方式对我的Last列进行标准化,方法是将每一行除以包含当天的第一行的价格。这是我的尝试:

df['Last']/df.groupby('closingDate').first()['Last']

分母看起来像这样:

closingDate
1997-09-09     943.25
1997-09-10     942.50
1997-09-11     928.00
1997-09-12     915.75
1997-09-14     933.00
1997-09-15     933.00

但是,这种划分只是给了我一列难解之谜。如何关联要在DateTime索引中广播的部门?

1 个答案:

答案 0 :(得分:3)

通常,这是transform的好用例:

df['Last'] /= df.groupby('closingDate')['Last'].transform('first')

相对于原始DataFrame广播groupby结果,现在可以进行划分了。