2
我首先創建了一些數據:創建NAN類別後,GROUPBY對象上聚集了錯誤
df = pd.DataFrame(data = {"A":np.random.random_integers(1,10,10), "B":np.arange(1,11,1)})
df.A.ix[3,4] = np.nan
後來我有一個PD數據幀與NaN的
A B
0 7 1
1 1 2
2 3 3
3 NaN 4
4 NaN 5
5 9 6
6 2 7
7 10 8
8 6 9
9 6 10
我試着組列A採用PD .cut功能在每個組別添加使用匯總功能
bin_S = pd.cut(df.A, [-math.inf, 3,5,8,9, math.inf],right= False)
df.groupby(bin_S).agg("count")
但是Nan值沒有分組(沒有Nan類別)
A B
A
[-inf, 3) 2 2
[3, 5) 1 1
[5, 8) 3 3
[8, 9) 0 0
[9, inf) 2 2
然後我試圖通過添加一個名爲新類別「失蹤」:
bin_S.cat.add_categories("Missing", inplace = True)
bin_S.fillna(value = "Missing", inplace = True
的分級系列看起來不錯。但是,這種聚合並不是我所期望的。
df.groupby(bin_S).agg("count")
結果是,
A B
A
[-inf, 3) 2 2
[3, 5) 1 1
[5, 8) 3 3
[8, 9) 0 0
[9, inf) 2 2
Missing 0 2
我期待列A和B列是完全一樣的。爲什麼他們在「失蹤」行上有所不同?真正的問題涉及到每個組的更復雜的操作。這個問題真的讓我感到困擾,因爲分組Nan值可能不可靠。
感謝。 df.groupby(bin_S).agg(np.size)。我改變了一點,所以沒有多層次的索引 –