【发布时间】:2022-04-05 09:44:42
【问题描述】:
我想在groupby 聚合中使用unique,但我不想在unique 结果中使用nan。
一个示例数据框:
df = pd.DataFrame({'a': [1, 2, 1, 1, np.nan, 3, 3], 'b': [0,0,1,1,1,1,1],
'c': ['foo', np.nan, 'bar', 'foo', 'baz', 'foo', 'bar']})
a b c
0 1.0000 0 foo
1 2.0000 0 NaN
2 1.0000 1 bar
3 1.0000 1 foo
4 nan 1 baz
5 3.0000 1 foo
6 3.0000 1 bar
还有groupby:
df.groupby('b').agg({'a': ['min', 'max', 'unique'], 'c': ['first', 'last', 'unique']})
它的结果是:
a c
min max unique first last unique
b
0 1.0000 2.0000 [1.0, 2.0] foo foo [foo, nan]
1 1.0000 3.0000 [1.0, nan, 3.0] bar bar [bar, foo, baz]
但我想要没有nan:
a c
min max unique first last unique
b
0 1.0000 2.0000 [1.0, 2.0] foo foo [foo]
1 1.0000 3.0000 [1.0, 3.0] bar bar [bar, foo, baz]
我该怎么做?当然,我有几列要聚合,每列需要不同的聚合函数,所以我不想将unique 聚合与其他聚合一个接一个地分开。
【问题讨论】:
标签: python pandas group-by null unique