Python 使用组,仅删除重复的NAN
根据分析、图像和Roi对我的数据进行分组,对于每个组,我希望删除除“强度”列中具有NaN值的第一行以外的所有行 我的尝试能够删除重复项,但这不是特定于NaN值的Python 使用组,仅删除重复的NAN,python,pandas,Python,Pandas,根据分析、图像和Roi对我的数据进行分组,对于每个组,我希望删除除“强度”列中具有NaN值的第一行以外的所有行 我的尝试能够删除重复项,但这不是特定于NaN值的 from pandas import Series, DataFrame import pandas as pd import numpy as np df = DataFrame({'assay':['cnt']*11, 'image':['001']*10+['002'],
from pandas import Series, DataFrame
import pandas as pd
import numpy as np
df = DataFrame({'assay':['cnt']*11,
'image':['001']*10+['002'],
'roi':['1']*5+['2']*5+['3'],
'dist':[99,90,50,2,30,65,95,30,56,5,33],
'cellArea':[99,90,50,2,30,65,95,30,56,5,33],
'xy':np.fabs(np.random.randn(11)*100),
'intensity':[88,88,1,3,67,67,67,95,1,3,2]},
columns=['assay','image','roi','dist','xy','cellArea','intensity','adjacency'])
df.loc[df.intensity < 10, ['intensity','xy']] = np.nan
df
您可以将
duplicated&is.null
检查器作为以下内容传递到lambda函数中,而不是使用drop\u duplicates
:
df.groupby(['assay','image','roi']).apply(lambda x: x.loc[~(x.duplicated(['intensity']) & x.intensity.isnull())])
您可以将
duplicated&is.null
检查器传递到lambda函数中,而不是使用drop\u duplicates
,如下所示:
df.groupby(['assay','image','roi']).apply(lambda x: x.loc[~(x.duplicated(['intensity']) & x.intensity.isnull())])