【发布时间】:2015-02-16 00:23:42
【问题描述】:
import numpy as np
import pandas as pd
df = pd.DataFrame({
'clients': pd.Series(['A', 'A', 'A', 'B', 'B']),
'odd1': pd.Series([1, 1, 2, 1, 2]),
'odd2': pd.Series([6, 7, 8, 9, 10])})
grpd = df.groupby(['clients', 'odd1']).agg({
'odd2': lambda x: x/float(x.sum())
})
print grpd
想要的结果是:
A 1 0.619047619
2 0.380952381
B 1 0.473684211
2 0.526316
我浏览了around,但我仍然不明白如何让lambdas 对整个阵列进行操作,f.ex。 x.sum() 工作。此外,我仍然错过了x 在x.sum() 中对分组列的意义。
【问题讨论】:
标签: arrays numpy pandas group-by aggregate