如何获取组的中位数,然后将其应用于属于该组的所有成员?
我有一个很大的数据框,其中第1列中的人员,第2列中的人员所属的组以及第3列中的得分。
我想获取组的中位数,然后在第4栏中将其分配给该组的成员。每组的中位数都不同。
答案 0 :(得分:1)
将to_numeric
与errors='coerce'
一起用于转换数字的字符串表示形式,还将非数字转换为NaN
,然后对新列使用GroupBy.transform
和median
在原始数据中填充的汇总值:
df['score'] = pd.to_numeric(df['score'], errors='coerce')
df['median'] = df.groupby('col2')['score'].transform('median')