python - Pandas - 连接分组行时忽略空值
问题描述
我正在尝试根据列值对数据框进行分组,并且我想连接(连接)其他列中的值。
我正在做类似的事情 -
df_combined = df_combined.groupby('UC').agg({'LO Number': ', '.join,
'K Code': ', '.join})
但是,这给了我一些列没有值nan
的值。K Code
所以结果看起来像
K Code
K0016, K0068, nan, nan, A0046
nan, nan, nan
如何摆脱K Code
列中的这些 nan 值?此外,有没有办法让第三列具有列中存在的值的数量K Code
。例如。对于上述情况,
Count
3
0
编辑:示例数据 -
UC LO Number K Code
C001 C001.1 K0068
C001 C001.2 K0372
C002 C002.1
C002 C002.3 K0032
C002 C002.5
谢谢!:)
解决方案
您可以尝试使用lambda
with agg
,但这会创建多个索引
因为你 nannan
在下面运行之前做替换
df=df.replace({'nan':np.nan})
df_combined.groupby('UC').agg({'LO Number': ', '.join,
'K Code': [lambda x : ', '.join(y for y in x if y==y),'count']})
如果你不想要多重索引
df_combined.assign(count=df_combined['K Code']).
groupby('UC').agg({'LO Number': ', '.join,
'K Code': lambda x : ', '.join(y for y in x if y==y),
'count':'count'})
推荐阅读
- matrix - 出现错误消息“要替换的项目数不是替换长度的倍数”
- python-3.x - Selenium 和 chromedrive 是最新的,但只能使用不推荐使用的选项
- swiper - 同时设置swiper滑块
- sql - 根据百分比插入行
- c++ - openVDB网格的合并,相交,差异
- javascript - 如何使用动态无线电创建 d3 径向
- visual-studio-code - 如何将“运行附加容器按钮”添加到 VSCode?
- ipfs - 集群内的 IPFS 节点/对等存储计算
- json - 如何使 JOLT 将键值作为列表返回,即使它具有单值或多值?
- python - Python eventlet 库:TypeError:'coroutine' 对象不可迭代