按计数分组,然后用新字符串值更新并保存到原始列

2024-06-06 15:30:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个熊猫数据框,有大约30000条记录,希望找到一个特定列的所有记录,该列的总计数小于10。数据框包含临床试验数据,我需要过滤和更新的列是每个试验的疾病。许多临床试验中都出现了一些疾病,因此我需要首先筛选出所有出现次数少于10次的疾病,然后将这些文本更改为一个名为“other”的新字符串。所有这些信息都需要在同一列中更新

这是我编写的代码,但当我尝试运行它时,JupyterLab似乎冻结了

df_diseases = df.groupby(['Diseases']).filter(lambda x: x['Diseases'].count() < 10).apply(lambda x: x.replace(x,'other')) 

Tags: 数据lambda字符串代码文本信息df记录
2条回答

你的问题的答案可以在这里找到(寻找Pedro M Duarte的答案):Get statistics for each group (such as count, mean, etc) using pandas GroupBy?

您可以使用groupby().transform()

s = df.groupby('Diseases')['Diseaes'].transform('count')
df.loc[s < 10, 'Disease'] = 'other'

或者可以使用value_countsmap

s = df['Diseases'].value_counts()

df['Dieases'] = np.where(df['Dieases'].map(s) > 10, df['Dieaseas'], 'other')

相关问题 更多 >