首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >以其他列为条件在Dataframe中创建列

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

Stack Overflow用户
提问于 2017-10-20 20:47:12
回答 1查看 47关注 0票数 1

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

代码语言:javascript
运行
复制
pd.DataFrame({"A":[1, 2, 1, 2],
      "B":[4, 6, 8, 12]

我想要创建一个新的列'C‘,将是

代码语言:javascript
运行
复制
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等等.

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-21 00:44:52

那是一个transform

代码语言:javascript
运行
复制
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')

参见https://pandas.pydata.org/pandas-docs/stable/groupby.html#transformation中的内容。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46857099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档