我有一个相框
df_in = pd.DataFrame([["A",-2],["B",23],["A",-4],["A",14],["B",12],["A",34],["B",-4],["C",-1],["A",-5],["B",21],["C",4],["B",-6]], columns=['var', 'val'])
个字符
我想将所有负值转换为1。找到值与1之间的差,在var级别对其求和。将总和除以var的+ve值的数量,并从var的+ ve值中减少该值。例如:var A有3个负值和2个正值。将所有负值转换为1,并找到-2和1之间的差为3,-4和1是5 -5和1是6。3+5+6之和=14。A有2 +个值。所以14除以2是7。现在从A的+ve值(23,34)中减去7。同样地,对其他变量也重复,或者执行groupby。
预期输出为:
df_out = pd.DataFrame([["A",1],["B",19],["A",1],["A",7],["B",8],["A",27],["B",1],["C",1],["A",1],["B",17],["C",2],["B",1]], columns=['var', 'val'])
var val
A 1
B 19
A 1
A 7
B 8
A 27
B 1
C 1
A 1
B 17
C 2
B 1
的字符串
怎么做?
2条答案
按热度按时间nkhmeac61#
个字符
kt06eoxx2#
用途:
字符串