考虑这个例子:
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被编入了{{{ 1}}价值。有没有办法阻止这种情况发生,而不用一些虚拟变量替换np.nan
值?另外 - 为什么会这样?
答案 0 :(得分:1)
大熊猫文档在此解释:http://pandas.pydata.org/pandas-docs/stable/missing_data.html
NAN被排除在外,这与R.一致。
早期版本的Pandas确实包含了它们,但它们已被删除。