【发布时间】:2013-06-01 14:10:21
【问题描述】:
鉴于 pandas 中的以下数据框:
import numpy as np
df = pandas.DataFrame({"a": np.random.random(100), "b": np.random.random(100), "id": np.arange(100)})
其中id 是由a 和b 值组成的每个点的ID,我如何将a 和b 分箱到一组指定的箱中(这样我就可以将a 和 b 在每个 bin 中的中值/平均值)?对于df 中的任何给定行,df 可能具有a 或b(或两者)的NaN 值。
这是一个使用 Joe Kington 的解决方案的更好的示例,它具有更真实的df。我不确定的是如何访问下面每个df.a 组的df.b 元素:
a = np.random.random(20)
df = pandas.DataFrame({"a": a, "b": a + 10})
# bins for df.a
bins = np.linspace(0, 1, 10)
# bin df according to a
groups = df.groupby(np.digitize(df.a,bins))
# Get the mean of a in each group
print groups.mean()
## But how to get the mean of b for each group of a?
# ...
【问题讨论】: