Я пытался что-то вроде этого.
def with_return(row):
t = [5,6]
return t
df = pd.DataFrame(columns=['idx1', 'idx2', 'col1', 'col2', 'col3'])
df.set_index(['idx1', 'idx2'], inplace=True)
df.loc[(1,2),:] = [3,4,5] #dummy element
df['col3'] = df.apply(with_return, axis=1)
print(df)
или просто использовать серии,
df.loc[(1,2),:] = pd.Series([3,4,(5,6)], index=df.columns)
Все еще не вставлял напрямую кортеж в качестве элемента в пустой DataFrame.Но просто еще один способ сделать это.Тем не менее, loc должен быть в состоянии справиться с этим.