2024-03-29 07:42:50 发布
网友
g | val 1 a 1 '' 2 b 2 '' 2 c 3 ''
我有一个数据框groupby要在每组中选择非值的中间值('g')。如何在熊猫身上做到这一点?在
您只需将框架切片,排除val列中的空值,然后使用groupby并计算中值。在
val
groupby
df[df['val']!=''].groupby('g').val.count().median()
这是你需要的吗?(Count不计算NaN,这就是为什么我们将“”替换为np.nan)
NaN
np.nan
df.val=df.val.replace('',np.nan) df Out[243]: g val 0 1 a 1 1 NaN 2 2 b 3 2 NaN 4 2 c 5 3 NaN df.groupby('g').val.count().median() Out[245]: 1.0
groupby前筛选
另一种方法是使用^{}函数:
# inside apply, we can filter values df.groupby('g')['val'].apply(lambda x: x[x!= ''].count()).median() Out[2]: 1.0
您只需将框架切片,排除
val
列中的空值,然后使用groupby
并计算中值。在这是你需要的吗?(Count不计算
NaN
,这就是为什么我们将“”替换为np.nan
)groupby前筛选
^{pr2}$另一种方法是使用^{} 函数:
相关问题 更多 >
编程相关推荐