对列进行分组,并应用函数创建新列



我正在尝试根据具有相同准入代码的成员分组及其平均停留时间值设置类别。

我的意思是,我有以下数据帧:

tbody> <<tr>212
MemberID AdmittingCode LOS
15
10
b2
b1

使用GroupBy.transformmean并比较原始列:

m = df.groupby('AdmittingCode')['LOS'].transform('mean').lt(df['LOS'])
df['LOSCategory'] = m.astype(int)
print (df)
MemberID AdmittingCode  LOS  LOSCategory
0         1             a    5            0
1         2             a   10            1
2         1             b    2            1
3         2             b    1            0

或者如果需要设置为字符串1, 0:

df['LOSCategory'] = m.astype(int).astype(str)
df['LOSCategory'] = np.where(m, '1', '0')

最新更新