我想使用 apply(applymap)和lambda 函数来获取 dfx 中每个元素的列名strong>(一个数据框)。 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.column”这一部分
预期输出
A B C
2011-01-10 A B C
2011-01-10 A B C
2011-01-11 A B C
任何帮助都倍受欢迎!非常感谢!
答案 0 :(得分:1)
您可以通过pd.DataFrame.iloc
进行分配:
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
答案 1 :(得分:0)
当您apply
使用该函数时,该函数将与行相对应的Series
作为参数。您可以通过将kwarg axis=1
传递到apply
来将其更改为一列。 Series
没有列(轴1),只有索引(轴0)。相反,您可以使用原始的DataFrame:
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
注意:当然,有更好的方法可以按照需要“不使用apply和lambda函数”。