MultiIndex를 사용하여 엑셀 시트를 읽은 후 일부 값이 'N/A'이고 pd.read_excel이 생각하기 때문에 인덱스에 np.nan이 표시됩니다. 그 (것)들을 개조하는 좋은 생각. 그러나 다중 색인을 유지하기 위해 'N/A'로 유지하려고합니다. 나는 MultiIndex.fillna을 사용하여 다시 변경하기 쉬운 것이라고 생각하지만 난이 오류를 얻을 :팬더 MultiIndex의 모든 레벨에서 NaN 값 바꾸기
index = pd.MultiIndex(levels=[[u'foo', u'bar'], [u'one', np.nan]],
labels=[[0, 0, 1, 1], [0, 1, 0, 1]],
names=[u'first', u'second'])
df = pd.DataFrame(index=index, columns=['A', 'B'])
df
df.index.fillna("N/A")
출력 :
---------------------------------------------------------------------------
NotImplementedError Traceback (most recent call last)
<ipython-input-26-a1e3a4802da7> in <module>()
----> 1 df.index.fillna("N/A")
/Users/billtubbs/anaconda/lib/python2.7/site-packages/pandas/indexes/multi.pyc in fillna(self, value, downcast)
588 def fillna(self, value=None, downcast=None):
589 # isnull is not implemented for MultiIndex
--> 590 raise NotImplementedError('isnull is not defined for MultiIndex')
591
592 def get_value(self, series, key):
NotImplementedError: isnull is not defined for MultiIndex
이것은 다음과 같은 해결책으로 생각됩니다 :'new_index = pd.MultiIndex (levels = [index.levels [0] .fillna ('N/A'), index.levels [1] .fillna (' N/A ')], labels = index.labels, names = index.names)'하지만 내 실제 데이터 프레임은 6 레벨의 다중 인덱스이므로 좀 지저분합니다. – Bill
인덱스 힌트없이 데이터 프레임을로드하고 NA 항목을 마사지 한 다음 set_index를 제안합니다. 그 순서대로 진행할 수없는 이유는 무엇입니까? – Boud
덕분에 @Boud도 가능합니다. – Bill