2012-07-27 4 views
0

전체 열이 NaN으로 채워진 슬라이스 DataFrame을 플로팅하는 데 문제가 있습니다. 올 방법팬더에 NaN-columns가 모두 0 열로 표시됩니다.

: 칼럼은 0으로 채워 것처럼 0 라인을 플로팅함으로써

#Ugly fix 
pandas.DataFrame(
    dict(
     A=pandas.Series([0] + [numpy.NaN]*32), 
     B=pd.Series(range(-1,32)) 
    ) 
).plot() 

:

pandas.DataFrame(
    dict(
     A=pandas.Series([np.NaN]*32), 
     B=pd.Series(range(-1,32)) 
    ) 
).plot() 

는 다르다. 해서는 안 첫 번째 코드 작업은 같이 또한

pylab.plot(
    range(0,33), 
    range(-1,32), 
    range(0,32), 
    [numpy.NaN]*32 
) 

그리고 잘 NaN이 가득 단지 시리즈 작품 음모를 꾸미고 :

pandas.Series([numpy.NaN]*32).plot() 

나는 무엇을 놓치고? 모든 NaN을 가진 열을 그릴 수있는 올바른 방법이 있습니까? 아니면 버그입니까?

답변

1

이것은 pandas의 버그와 같습니다. pandas.tools.plotting, lines 554:556에, 소스 코드를 보면 : 열은 NaN이 포함되어

empty = df[col].count() == 0          
# is this right?             
values = df[col].values if not empty else np.zeros(len(df))   

경우, 빈은 사실이고 값이 np.zeros로 설정됩니다().

참고 : "이게 맞습니까?" 의견 : 그것은 소스 코드에 있습니다! (팬더 v.0.8.1).

버그가 발생했습니다 : https://github.com/pydata/pandas/issues/1696

관련 문제