python dataframe:在apply lambda中返回列名

python dataframe:在apply lambda中返回列名,python,pandas,dataframe,indexing,lambda,Python,Pandas,Dataframe,Indexing,Lambda,我想使用apply(applymap)和lambda函数来获取dfx(数据帧)中每个元素的列名。lambda函数用于将另一个数据帧映射到dfx,然后将其重写 dfx A B C 2011-01-10 123 12 123 2011-01-10 12 32 312 2011-01-11 44 1 30.99 伪代码 output = dfx.apply(lambda r:r.column) 我不知道如何写

我想使用apply(applymap)和lambda函数来获取dfx(数据帧)中每个元素的列名。lambda函数用于将另一个数据帧映射到dfx,然后将其重写

dfx

             A     B    C
2011-01-10   123   12   123 
2011-01-10   12    32   312
2011-01-11   44    1    30.99   
伪代码

output = dfx.apply(lambda r:r.column)
我不知道如何写这部分“r:r专栏”

预期输出

             A    B    C
2011-01-10   A    B    C 
2011-01-10   A    B    C
2011-01-11   A    B    C  

欢迎任何帮助!非常感谢

当您应用一个函数时,该函数将对应于一行的
序列作为参数。通过将kwarg
轴=1
传递到
apply
,可以将其更改为列。
系列
没有列(轴1)-只有索引(轴0)。相反,您可以使用原始数据帧:

dfx.apply(lambda s: dfx.columns, axis=1)
返回

            A  B  C
2011-01-10  A  B  C
2011-01-10  A  B  C
2011-01-11  A  B  C
注意:当然有更好的方法可以做到这一点,而不必根据需要“使用应用和lambda函数”。

您可以通过以下方式进行分配:


当您说函数将在以后重写时,您的意思是您也需要访问列的值,还是只需要列的名称?这不符合我在每一行得到的
索引(['A','B',…])
df.iloc[:] = df.columns

print(df)

            A  B  C
2011-01-10  A  B  C
2011-01-10  A  B  C
2011-01-11  A  B  C