私は幾分奇妙なの動作をここで感知しています。私は、任意の要素インデックスの文字列のタプルを持つPandas DataFrame
In [15]: df['Col 2'].loc[('1', 'b')] = 6
In [16]: df
Out[16]:
Col 1 Col 2 Col 3
(1, a) NaN NaN NaN
(2, a) NaN NaN NaN
(1, b) NaN 6 NaN
(2, b) NaN NaN NaN
の値を設定することができます。しかし、私は、私はちょうど同じ構文を使用して設定する要素を参照するために行くとき、私は
を得る
df = pd.DataFrame(columns=['Col 1', 'Col 2', 'Col 3'],
index=[('1', 'a'), ('2', 'a'), ('1', 'b'), ('2', 'b')])
In [14]: df
Out[14]:
Col 1 Col 2 Col 3
(1, a) NaN NaN NaN
(2, a) NaN NaN NaN
(1, b) NaN NaN NaN
(2, b) NaN NaN NaN
のように見えるのデータフレームを持っています
In [17]: df['Col 2'].loc[('1', 'b')]
KeyError: 'the label [1] is not in the [index]'
誰かが私が間違っていること、またはこの現象がなぜ起こるのかを教えてもらえますか?インデックスを複数要素タプルとして設定することは許されませんか?
編集どうやら
、リストの作品にタプルインデックスを包みます。これは使用を推奨されていないかどうかを知ることは素晴らしいことだので
In [38]: df['Col 2'].loc[[('1', 'b')]]
Out[38]:
(1, b) 6
Name: Col 2, dtype: object
私はまだ私の実際のユースケースではいくつかの奇妙な行動を取得していますが。
[この質問](https://stackoverflow.com/questions/25476880/using-dataframe-ix-with-a-tuple-index-in-pandas)での応答はそれはお勧めしません示唆タプルキーとマルチインデックス選択間のあいまいさの使用の原因 –