繁体   English   中英

以其他列为条件在数据框中创建列

[英]Create a Column in a Dataframe Conditional on Other Columns

我正在尝试创建一个新列,该列以另一列中的值为条件取另一列中值的平均值。

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,等等...

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

这是一个transform

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')

另请参阅文档组

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM