我有一个数据框,我想将每一行转换为对角线数据框,并将所有结果绑定到一个大的数据框中。 输入:
a b c
2021-11-06 1 2 3
2021-11-07 4 5 6
期望输出:
a b c
Date
2021-11-06 a 1 0 0
b 0 2 0
c 0 0 3
2021-11-07 a 4 0 0
b 0 5 0
c 0 0 6
我尝试对原始数据框的每一行使用apply函数。
data = pd.DataFrame([[1,2,3],[4,5,6]], columns=['a', 'b', 'c'], index=pd.date_range('2021-11-06', '2021-11-07'))
def convert_dataframe(ser):
df_ser = pd.DataFrame(0.0, index=ser.index, columns=ser.index)
np.fill_diagonal(df_ser.values, ser)
return df_ser
data.apply(lambda x: convert_dataframe(x), axis=1)
然而,输出的不是我期望的多级索引数据框架。相反,输出是一个单索引数据框架,其中每一行都是对返回的对角线数据帧的引用。
非常感谢您的任何帮助。提前致谢。