Python 在Dataframe中以其他列为条件创建列

Python 在Dataframe中以其他列为条件创建列,python,dataframe,Python,Dataframe,我试图创建一个新列,该列以另一列中的值为条件获取另一列中的值的平均值 pd.DataFrame({"A":[1, 2, 1, 2], "B":[4, 6, 8, 12] 我想创建一个新的列“C”,它将 pd.DataFrame({"A":[1, 2, 1, 2, 3], "B":[4, 6, 8, 12, 4], "C":[6,9,6,9,4]} 如果不清楚,我想在A列中的值相同时输出B列中的值的平均值。所以,C=(4+6+…)/n其中A==1,C=(6+

我试图创建一个新列,该列以另一列中的值为条件获取另一列中的值的平均值

pd.DataFrame({"A":[1, 2, 1, 2],
      "B":[4, 6, 8, 12]
我想创建一个新的列“C”,它将

pd.DataFrame({"A":[1, 2, 1, 2, 3],
      "B":[4, 6, 8, 12, 4],
      "C":[6,9,6,9,4]}
如果不清楚,我想在A列中的值相同时输出B列中的值的平均值。所以,C=(4+6+…)/n其中A==1,C=(6+8+…)/n其中A==2,等等

我也很难想出这个的伪代码。除了代码解决方案之外,任何逻辑解释都将不胜感激。

这是一个:


另请参见。

对不起,我没有遵循逻辑。什么是n?
In [11]: df
Out[11]:
   A   B
0  1   4
1  2   6
2  1   8
3  2  12
4  3   4

In [12]: df.groupby("A")["B"].transform('mean')
Out[12]:
0    6
1    9
2    6
3    9
4    4
Name: B, dtype: int64

In [13]: df["C"] = df.groupby("A")["B"].transform('mean')