【发布时间】:2016-03-07 09:10:17
【问题描述】:
考虑这个例子:
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
而不是在行上显示1 5 和 6、'a' 和 'b',可能是因为 groupby 在 np.nan 值上被索引。有没有办法阻止这种情况发生,而不用一些虚拟变量替换 nan 值?还有——为什么会这样?
【问题讨论】:
-
不幸的是,似乎排除了按
nan分组的组(请参阅print grouped.groups)。另请参阅此问题:stackoverflow.com/questions/18429491/…