在python数据帧中查找和替换绝对最大正数和负数
我在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
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
您所说的“绝对最大值”是什么意思?绝对最大值怎么可能是负数?数据帧是什么意思?字典?你不能用一个查询就能做到。您必须逐行处理此项。