pandas - Pandas:计算具有 NaN 值的四列的唯一组合
问题描述
我一直在为此挠头。我有一个包含四列的数据框
a b c d
0 1 1 Nan NaN
1 2 1 1 NaN
2 1 1 Nan NaN
3 3 2 1 3
我想要从列到新列的唯一组合的计数
a b c d count
0 1 1 Nan NaN 2
1 2 1 1 NaN 1
3 3 2 1 3 1
我一直在使用:
df.groupby(['a', 'b', 'c', 'd']).size().reset_index().rename(columns={0:'count'})
但这只会给我每列的值不是 Nan 的行:
a b c d count
0 3 2 1 3 1
如何获得所有组合?
解决方案
一种解决方法是NaN
用字符串替换值'NaN'
:
(df.fillna('NaN')
.groupby(list(df.columns))['a'].size()
.reset_index(name='count')
)
输出:
a b c d count
0 1 1 NaN NaN 2
1 2 1 1 NaN 1
2 3 2 1 3 1
推荐阅读
- java - 这是 Java 的 Inflater 中的错误还是什么?
- javascript - 以正确的方式调度行动
- ruby-on-rails - Struct.new 可以将选项作为参数吗?
- post - 无法使用 ESP8266 (espruino) 发布
- selenium - Selenium Python Behave 框架 - 如何单击 element_by _id
- asp.net - VB.NET 从路径中获取目录和子目录
- c - 了解 stack-use-after-scope 错误
- excel - 电子表格 | 公式创建的超链接不适用于隐藏表
- rest - 使用 GraphQL 封装 REST API / 仅使用 GraphQL
- c - C和MATLAB中的矩阵乘法,不同的结果