创建包含列表元组列表的多索引数据框

时间:2018-04-27 10:51:05

标签: python pandas multi-index

我想使用以下内容创建一个多索引数据框:

column_1=['A','B','C','D']
column_2=[['a','b'],'c',['d','e'],['f','i','j']]
value_1=[1,2,3,4]
value_2=[5,6,7,8]
df=pd.DataFrame({"Column_1":column_1,
             "Column_2":column_2,
             "Value_1":value_1,
             "Value_2":value_2},
            index=pd.MultiIndex.from_arrays(list(zip(*[column_1,column_2]))),
            columns=["Value_1","Value_2"])
df

然后我收到了错误:

ValueError: setting an array element with a sequence

我搜索了一下,我认为原因是pd不理解column_1与column_2的长度不同。 但我该如何解决这个问题呢? 我想要这样的东西:

    Value_1   Value_2
A a
  b
B c

.....

1 个答案:

答案 0 :(得分:0)

好吧,我不知道我是否完全理解你。但是这样的事情呢?

df = pd.concat([pd.Series(row['Column_1'], list(row['Column_2']))
                    for i, row in df.iterrows()]).reset_index()
df.columns = ['Column_2', 'Column_1']

df.set_index(['Column_1', 'Column_2'], inplace=True)
相关问题