これはピンダウンするのが難しいですが、pandas.read_excel
のスプレッドシートから読み取られたデータフレームでマルチインデックスを使用できないようです。私はGistスプレッドシートからDataFrameのMultiIndexにアクセスする際にエラーが発生しました
df = pd.read_excel('small.xlsx')
df.set_index(['qrsid','locus'], inplace=True)
print(('dkdkd', 'kdkd') in df.index)
パンダプリミティブから作成されたマルチインデックスが正常に動作して私ができる
df = pd.DataFrame({'qrsid':['qb210', 'qb210', 'qb210', 'qb210', 'qb210'],
'locus':['gag','gag','gag','gag','gag'],
'dpi': [ 800, 1002, 2291, 4444, 212]})
df.set_index(['qrsid','locus'], inplace=True)
print(('dkdkd', 'kdkd') in df.index)
、エラー、
Traceback (most recent call last):
File "mindex.py", line 14, in <module>
print(('dkdkd', 'kdkd') in df.index)
File "/path/venv/local/lib/python2.7/site-packages/pandas/indexes/multi.py", line 947, in __contains__
self.get_loc(key)
File "/path/venv/local/lib/python2.7/site-packages/pandas/indexes/multi.py", line 1538, in get_loc
if lead_key else (0, len(self)))
File "/path/venv/local/lib/python2.7/site-packages/pandas/indexes/multi.py", line 1444, in slice_locs
return super(MultiIndex, self).slice_locs(start, end, step, kind=kind)
File "/path/venv/local/lib/python2.7/site-packages/pandas/indexes/base.py", line 2879, in slice_locs
start_slice = self.get_slice_bound(start, 'left', kind)
File "/path/venv/local/lib/python2.7/site-packages/pandas/indexes/multi.py", line 1415, in get_slice_bound
return self._partial_tup_index(label, side=side)
File "/path/venv/local/lib/python2.7/site-packages/pandas/indexes/multi.py", line 1460, in _partial_tup_index
raise TypeError('Level type mismatch: %s' % lab)
TypeError: Level type mismatch: dkdkd
類似したデータフレームを生成して、すべてのファイルを配置しました2つのデータフレーム間で何が異なるかを把握していない。どちらも同じdf.dtypes
です。両方とも同じ外観になるdf.index
。誰が最初のインデックスのインデックスにアクセスできないのか教えていただけますか?
$ python --version
Python 2.7.6
$ python -c 'import pandas; print pandas.__version__'
0.18.0