在python数据帧中查找和替换绝对最大正数和负数

在python数据帧中查找和替换绝对最大正数和负数,python,Python,我在python中有一个值的数据框架,下面给出了一个示例 A B C -0.9 0.6 -1.1 0.7 -0.4 -0.2 1 2 3 -1 -2 -3 我想做的是,如果绝对最大值为正,用1替换元素,如果绝对最大值为负,用-1替换元素,其他元素为零。因此,上面的示例将转换为 A B C 0

我在python中有一个值的数据框架,下面给出了一个示例

   A        B       C      
 -0.9      0.6    -1.1  
  0.7     -0.4    -0.2     
   1        2       3
  -1       -2      -3

我想做的是,如果绝对最大值为正,用1替换元素,如果绝对最大值为负,用-1替换元素,其他元素为零。因此,上面的示例将转换为

       A   B   C      
       0   0  -1 
       1   0   0  
       0   0   1
       0   0  -1

有没有办法做到这一点?

这里有一个解决方案,它将帮助函数应用于数据帧:

def helper(row):
    m =max(abs(row))
    for col in df.columns:
        if abs(row[col]) == m:
            if row[col] > 0:
                row[col] = 1
            elif row[col] < 0:
                row[col] = -1
        else:
            row[col] = 0
    return row

df = df.apply(helper,axis = 1).astype(int)

print(df)
#output:
   A  B  C
0  0  0 -1
1  1  0  0
2  0  0  1
3  0  0 -1
def辅助程序(行):
m=最大值(abs(世界其他地区))
对于df.列中的列:
如果abs(行[col])==m:
如果行[col]>0:
行[col]=1
elif行[col]<0:
行[列]=-1
其他:
行[col]=0
返回行
df=df.apply(helper,axis=1).astype(int)
打印(df)
#输出:
A、B、C
0  0  0 -1
1  1  0  0
2  0  0  1
3  0  0 -1

您所说的“绝对最大值”是什么意思?绝对最大值怎么可能是负数?数据帧是什么意思?字典?你不能用一个查询就能做到。您必须逐行处理此项。