【问题标题】:Calculating median if for values in a column that match a condition为匹配条件的列中的值计算中值
【发布时间】:2019-12-16 13:11:21
【问题描述】:

我是 Pandas 的新手。

我的数据集:

df

A       B 
10      1
15      2  
65      3   
54      2  
51      2   
96      1  

我正在尝试添加新列 C 并计算列 B 定义的同一组中的值的中位数。

预期结果:

df

A       B       C
10      11      53
15      2       34
65      3       65
54      2       34
51      2       34
96      1       53

我尝试过的:

df_final['C'] = df_final.groupby('B')['A'].transform('median')

我确实得到了答案,但由于 DataFrame 很大,我不确定我的代码是否正确执行,有人可以告诉我是否使用了正确的方法来实现这一点吗?

【问题讨论】:

  • 我认为解决方案是正确的。
  • 这样才是正确的
  • 谢谢,当您展示如何计算分组类别的平均值时,我使用了您之前的示例@jezrael。如果我想从 A 每个类别B 的列中提取最大值和最小值,我可以使用df['max']=df.groupby('B')['A'].transform(max)?
  • @JonasPalačionis - 是的,很好
  • @JonasPalačionis 如果 jerzael 的评论解决了您的问题,请将问题标记为“已关闭”。

标签: python pandas


【解决方案1】:

你可以使用:

df_final['C'] = df_final.groupby('B')['A'].transform('median')

在 cmets 中提供。

【讨论】:

    猜你喜欢
    • 2022-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-09
    • 1970-01-01
    • 2021-06-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多