考虑这个例子:确保GROUPBY输出型
import pandas as pd
import numpy as np
foo = pd.DataFrame(dict(letter=['a', 'a', 'a', 'b', 'b', 'b', 'a', 'b'],
number=[1,1,2,2,3,np.nan, np.nan,4]))
grouped = foo.groupby(foo.number)
print grouped['letter'].transform(lambda x: sum(x=='a'))
Out[18]:
0 2
1 2
2 1
3 1
4 0
5 b
6 a
7 0
而不是显示行数5
和6
,'a'
,和'b'
1
的被示出,这大概是因为GROUPBY被索引上的np.nan
值。有没有办法阻止这种情况的发生,而不用用一些虚拟变量代替nan
值?另外 - 为什么会发生?
不幸的是,它看起来像按nan分组的组看起来是不包含的(参见'print grouped.groups')。也看到这个问题:https://stackoverflow.com/questions/18429491/groupby-columns-with-nan-missing-values – wflynny