我想创建一个二维层次结构索引的Pandas数据框。我找到了用于多索引的文档
arrays = [np.array(['bar', 'bar', 'baz', 'baz', 'foo', 'foo', 'qux', 'qux']),
np.array(['one', 'two', 'one', 'two', 'one', 'two', 'one', 'two'])]
s = pd.Series(np.random.randn(8), index=arrays)
相反,我希望为索引使用四个数组,并且希望它们具有不同的长度。我将如何去做?
答案 0 :(得分:0)
这实际上与如何表示数据有关。 本质上,这不是一个Series,而是一个具有5列的DataFrame:
例如:
df = pd.DataFrame({"level_0":{"0":"bar","1":"bar","2":"baz","3":"baz","4":"foo","5":"foo","6":"qux","7":"qux"},"level_1":{"0":"one","1":"two","2":"one","3":"two","4":"one","5":"two","6":"one","7":"two"},"level_2":{"0":"a","1":"b","2":"c","3":"d","4":"e","5":"f","6":"g","7":"h"},"level_3":{"0":"1","1":"2","2":"3","3":"4","4":"5","5":"6","6":"7","7":"8"},"0":{"0":1.7686082254,"1":-1.2237523116,"2":-1.3066335651,"3":-1.3800965009,"4":-0.5995811728,"5":-1.4717242393,"6":-1.0613097567,"7":-0.3232780637}})
您得到:
然后您可以将索引设置为4级索引
df = df.set_index(['level_0', 'level_1', 'level_2', 'level_3'])
您将获得4级索引的系列
原始DataFrame可能缺少值(即您的索引数组本来是“不同长度”的),并且可以为您提供所需的内容。