我有这样一个df:
Species Status T1 T2 T3
0 Kentucky L 96.0 88.0 79.0
1 Eupesu L 0.0 2.0 3.0
2 Serrated L 1.0 4.0 2.0
3 Smooth_Brome L 2.0 0.0 1.0
4 U1 L 3.0 6.0 10.0
Total 102.0 100.0 95.0
我想写一个语句或函数,如果T1
(102.0)的总数小于100,那么取100—在T1
内的总值,并将该值加到最大值上。如果T1
大于100,则取T1
的总值,从100中减去,然后从T1
内的最大值中减去该值。我想对T2
和T3
的总数做同样的处理。基本上每列的总数应该是100。你知道吗
我一直在尝试使用以下代码:
if df.T1.Total < 100:
df.T1.max()=(100-df.T1.Total)+df.T1.max()
if df.T1.Total > 100:
df.T1.max()= df.T1.max()-(df.T1.Total-100)
if df.T2.Total < 100:
df.T2.max()=(100-df.T2.Total)+df.T2.max()
if df.T2.Total > 100:
df.T2.max()=df.T2.max()-(df.T2.Total-100)
if df.T3.Total < 100:
df.T3.max()=(100-df.T3.Total)+df.T3.max()
if df.T3.Total > 100:
df.T3.max()=df.T3.max()-(df.T3.Total-100)
df.loc['Total']=df.sum()
print df
我想要的结果是:
Species Status T1 T2 T3
0 Kentucky L 94.0 88.0 84.0
1 Eupesu L 0.0 2.0 3.0
2 Serrated L 1.0 4.0 2.0
3 Smooth_Brome L 2.0 0.0 1.0
4 U1 L 3.0 6.0 10.0
Total 100.0 100.0 100.0
但代码返回:
SyntaxError: can't assign to function call
我很肯定有一个更好的方法。你知道吗
以下是如何调整值:
要获得:
以便:
收益率:
必须在数据帧上使用.loc方法:
相关问题 更多 >
编程相关推荐