我有一个数据框(df_input),我试图通过将公式应用于每行中的每个元素,将其转换为另一个数据框(df_output)。该公式需要有关整行的信息(最小值、最大值、中值)。
df_input:
A B C D E F G H I J
2011-01-01 60 48 26 29 41 91 93 87 39 65
2011-01-02 88 52 24 99 1 27 12 26 64 87
2011-01-03 13 1 38 60 8 50 59 1 3 76
df_输出:
F(A)F(B)F(C)F(D)F(E)F(F)F(G)F(H)F(I)F(J)
2011-01-01 93 54 45 52 8 94 65 37 2 53
2011-01-02 60 44 94 62 78 77 37 97 98 76
2011-01-03 53 58 16 63 60 9 31 44 79 35
如上所述,在将 f(x) 应用于每行的每个单元格之后,我试图从 df_input 转到 df_output。函数 foo 试图通过将行的最小值、中值和最大值与某些坐标进行 OLS 回归来将元素 x 映射到 f(x)。每个时期都这样做。
我知道我遍历行,然后为每一行将函数应用于每个元素。我正在苦苦挣扎的地方是将 foo 的输出转换为 df_output。
for index, row in df_input.iterrows():
min=row.min()
max=row.max()
mean=row.mean()
#apply function to row
new_row = row.apply(lambda x: foo(x,min,max,mean)
#add this to df_output
help!
我目前的想法是逐行建立新的df?我正在尝试这样做,但我得到了很多多索引列等。任何指针都会很棒。
非常感谢...祝大家圣诞快乐。