pandas.DataFrameのset_indexについての勘違い

まさに勘違いをしていてハマった。
DataFrame.set_index(['Time'])のように書くと、DataFrameにカラムを追加してくれるのだと勘違いしていた。
全然違うじゃん。

#coding:utf-8
import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.randint(0, 10, (5,4)),
                  columns=list('ABCD'),
                  )

#df.index = '1'
print df

実行結果は下記。
※random.randintを使用しているので実行するたびに結果は変わる。

A B C D
0 7 9 8 1
1 5 1 4 1
2 8 6 1 5
3 1 1 4 4
4 1 6 0 5

これに続いて下記を実装。

df.set_index(['A','B'])
print df

結果は下記。

A B C D
0 7 9 8 1
1 5 1 4 1
2 8 6 1 5
3 1 1 4 4
4 1 6 0 5

これで正しいのだけど、勘違いで、次のように実装してTimeという列が追加されると思っていた。

df.set_index(['Time'])
print df

結果は下記エラー。
そんなキーは無いよとさ。

  File "pandas\index.pyx", line 137, in pandas.index.IndexEngine.get_loc (pandas\index.c:3979)
  File "pandas\index.pyx", line 157, in pandas.index.IndexEngine.get_loc (pandas\index.c:3843)
  File "pandas\hashtable.pyx", line 668, in pandas.hashtable.PyObjectHashTable.get_item (pandas\hashtable.c:12265)
  File "pandas\hashtable.pyx", line 676, in pandas.hashtable.PyObjectHashTable.get_item (pandas\hashtable.c:12216)
KeyError: 'Time'

同じ人が「Can't set index of a pandas data frame - getting “KeyError”」で書いていたので解決。