python - pandas 在处理 nan 值的 groupby 对象上转换 nunique
问题描述
我有以下df
,
inv_id cluster_id
793 2
2
789 3
789 3
4
4
我喜欢groupby
cluster_id
检查每个组有多少唯一值,
df['same_inv_id'] = df.groupby('cluster_id')['inv_id'].transform('nunique') == 1
但我喜欢设置same_inv_id = False
一些集群只包含 empty/blank inv_id
,并且当一些集群包含一个或多个 empty/blankinv_id
时,结果将如下所示,
inv_id cluster_id same_inv_id
793 2 False
2 False
789 3 True
789 3 True
4 False
4 False
解决方案
然后 IIUC 得到条件transform
+all
s1=df.inv_id.ne('').groupby(df.cluster_id).transform('all')
s1
Out[432]:
0 False
1 False
2 True
3 True
4 False
5 False
Name: inv_id, dtype: bool
s2=df.groupby('cluster_id')['inv_id'].transform('nunique') == 1
#df['same_inv_id']=s1&s2
推荐阅读
- javascript - 如何使用 wp_localize_script 将 php 变量传递给 Wordpress 中的 *.js 文件
- pentaho - Pentaho-kettle 使用 java 在文件中写入日志
- python - 由于 sys.path 在 make html 期间出错
- python - Python 重置变量 - While 循环
- python - Django 对象 - 它从哪里继承?
- c++ - 为什么在 C++ 中将较大函数中的某些功能编写为 lambdas?
- git - git:只允许特定用户提交
- javascript - 时刻 unix 时间戳格式错误的日期
- angular - 如何定义queryParams Angular 5路由器
- python - python中的正则表达式:替换双引号之间多次出现的逗号