【发布时间】:2019-08-05 19:05:18
【问题描述】:
我有一个包含组的数据框。 为了标准化每个组的值,我想将每个组的所有值除以该组中某个元素的值。
df = pd.DataFrame([['a','2018-02-03',42],
['a','2018-02-04',22],
['a','2018-02-05',10],
['a','2018-02-06',32],
['b','2018-02-03',10],
['b','2018-02-04',8],
['b','2018-02-05',2],
['b','2018-02-06',12],
['c','2018-02-03',20],
['c','2018-02-04',30],
['c','2018-02-05',5],
['c','2018-02-06',15]])
df.columns = ['product','day','value']
我想通过 'day' == '2018-02-05' 的 'value' 对每个 'product' 的列 'value' 进行规范化
预期结果:
product day value
0 a 2018-02-03 4.2
1 a 2018-02-04 2.2
2 a 2018-02-05 1
3 a 2018-02-06 3.2
5 b 2018-02-03 5
6 b 2018-02-04 4
7 b 2018-02-05 1
8 b 2018-02-06 6
10 c 2018-02-03 4
11 c 2018-02-04 6
12 c 2018-02-05 1
13 c 2018-02-06 3
我试过df.groupby('product').transform()。
访问第一个值.transform('first') 是可能的。
但是我找不到访问某个值的方法。
注释:
也许这个不用.groupby()也能解决?
【问题讨论】:
标签: pandas dataframe group-by transform normalize