【发布时间】:2021-11-11 10:52:16
【问题描述】:
我有一个数据框,我想为其计算一个新列。 该列应等于 x_i/E(x|Y=y_i)。其中 x_i 是第 i 行和第 X 列上的某个元素。 代码方面是:
df = pd.DataFrame(dict(
Y=['y1'] * 2 + ['y2'] * 3 + 1 * ['y1'],
X=range(1, 7)
))
Y X
0 y1 1
1 y1 2
2 y2 3
3 y2 4
4 y2 5
5 y1 6
最终的形式应该是这样的
Y X C_O
0 y1 1 1/3
1 y1 2 2/3
2 y2 3 3/4
3 y2 4 4/4
4 y2 5 5/4
5 y1 6 6/3
我尝试了类似的方法,但没有奏效。
df["C_0"]=[df["X"]*df.groupby('Y')['X'].mean()]
另一个想法是遍历列表,但数据框有数以万计的项目,因此可能应该以其他更简单的方式完成。
【问题讨论】:
-
你能解释一下分母“E(x|Y=y_i)”的公式是什么意思吗?
标签: python pandas dataframe multidimensional-array mean