создание мультииндексного фрейма данных со списком кортежей списков - PullRequest
0 голосов
/ 27 апреля 2018

Я хочу создать мультииндексный фрейм данных со следующим:

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 голосов
/ 27 апреля 2018

Ну, я не знаю, полностью ли я вас понял. Но как насчет этого?

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)
...