Phantom Index when NaN in MultiIndex · Issue #5286 · pandas-dev/pandas (original) (raw)
csv_str = """u1,u2,u3,d1,d2,d3,d4
Good Things,C,,1,1,1,1
Good Things,R,,1,1,1,1
Bad Things,C,,1,1,1,1
Bad Things,T,,1,1,1,1
Okay Things,N,B,1,1,1,1
Okay Things,N,D,1,1,1,1
Okay Things,B,,1,1,1,1
Okay Things,D,,1,1,1,1"""
d_nan = pd.read_csv(StringIO.StringIO(csv_str), na_filter=False,index_col=[0,1,2])
d_no_nan = pd.read_csv(StringIO.StringIO(csv_str), na_filter=False,index_col=[0,1,2],na_values=[], keep_default_na=False)
In [63]: d_nan
Out[63]:
d1 d2 d3 d4
u1 u2 u3
Good Things C NaN 1 1 1 1
R NaN 1 1 1 1
Bad Things C NaN 1 1 1 1
T NaN 1 1 1 1
Okay Things N B 1 1 1 1
D 1 1 1 1
B NaN 1 1 1 1
D NaN 1 1 1 1
In [64]: d_nan.loc["Good Things"]
Out[64]:
d1 d2 d3 d4
u2 u3
C NaN 1 1 1 1
R NaN 1 1 1 1
In [65]: d_nan.loc["Good Things"].loc['C']
Out[65]:
d1 d2 d3 d4
u3
D 1 1 1 1
In [67]: d_no_nan
Out[67]:
d1 d2 d3 d4
u1 u2 u3
Good Things C 1 1 1 1
R 1 1 1 1
Bad Things C 1 1 1 1
T 1 1 1 1
Okay Things N B 1 1 1 1
D 1 1 1 1
B 1 1 1 1
D 1 1 1 1