Я создал фрейм данных "df", который выглядит следующим образом:
Name
0. School
1. Organisation
2. Teacher
3. Guest
Теперь у меня есть три списка
1. A = ['','','',['12','4']]
2. B = ['','','',['3','8']]
3. status = ['','','','[['yes','no','yes'],['no','yes','no']]]
4. letter = ['', '', '', [[['K', 'L'], ['L'], ['L']], [['O'], ['P', 'O'], ['K']]]]
Я хочу добавить эти 4 списка в мой существующий фрейм данныхdf и это должно выглядеть так
Name A1 A2 status letter
0. School
1. Organisation
2. Teacher
3. Guest 12 3 yes K
3. Guest 12 3 yes L
3. Guest 12 3 no L
3. Guest 12 3 yes L
3. Guest 4 8 no O
3. Guest 4 8 yes P
3. Guest 4 8 yes O
3. Guest 4 8 no K
Я пробовал df['from']=from
и df['to']=to
Но это не дало мне стол, как я ожидал.
Я тоже пробовал это:
dfa=pd.DataFrame({"Names":names})
def flat(nums):
res = []
index = []
for i in range(len(nums)):
if isinstance(nums[i], list):
res.extend(nums[i])
index.extend([i]*len(nums[i]))
else:
res.append(nums[i])
index.append(i)
return res,index
x="A1"
list_flat,list_index=flat(eval(x))
dataframe = pd.DataFrame({x:list_flat},index=list_index)
df = pd.concat([df['Names'],dataframe],axis=1,sort=False)
x="A2"
list_flat,list_index=flat(eval(x))
dataframe = pd.DataFrame({x:list_flat},index=list_index)
df= pd.concat([df,dataframe],axis=1,sort=False)
x="status"
list_flat,list_index=flat(eval(x))
dataframe = pd.DataFrame({x:list_flat},index=list_index)
df = pd.concat([df,dataframe],axis=1,sort=False)
x="letter"
list_flat,list_index=flat(eval(x))
dataframe = pd.DataFrame({x:list_flat},index=list_index)
df = pd.concat([df,dataframe],axis=1,sort=False)
Но вместо того, чтобы появляться в разных строках, вложенные списки появляются в той же строке, как это
Name A1 A2 status letter
0. School
1. Organisation
2. Teacher
3. Guest 12 3 ['yes','no','yes'] [['K','L'],['L'],['L']]
3. Guest 4 8 ['no','yes','no'] [['O'],['P','O'],['K']]