python dataframe:在apply lambda中返回列名
我想使用apply(applymap)和lambda函数来获取dfx(数据帧)中每个元素的列名。lambda函数用于将另一个数据帧映射到dfx,然后将其重写 dfxpython 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) 我不知道如何写
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