python - 如果列中的值与条件匹配,则计算中位数

标签 python pandas

我是 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 很大,我不确定我的代码是否正确执行,有人可以告诉我我是否使用了正确的方法来实现这个目标吗?

最佳答案

您可以使用:

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

如评论中所提供。

关于python - 如果列中的值与条件匹配,则计算中位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59357331/

相关文章:

c# - 使用属性包装方法 C#

python - 在 Python Pandas 中将 GZIP 压缩应用于 CSV

python - 如何在Spyder IDE的变量资源管理器中保存变量

python - 在 pandas 中条件很少的情况下如何选择列

python - 通过 Pydrive 将 Google 电子表格转换为 Pandas 数据框,无需下载

python - 如果列存在于 df 中,如何根据条件删除 Pandas 中的列数据框 (df)?

python - 模块 'tweepy' 没有属性 'OAuthHandler'

python - If-Then-Else 正则表达式语句

python - pandas DataFrame 中按位不为 True(包括 NaN)

php - 为网络协作编码