擅长:python、mysql、java
<p>我对你的函数做了一点调整,现在似乎可以了:)</p>
<pre><code>def my_round(n, ndigits=1):
try:
part = n * 10 ** ndigits
delta = part - int(part)
# always round "away from 0"
if delta >= 0.5 or -0.5 < delta <= 0:
part = math.ceil(part)
else:
part = math.floor(part)
val = part/(10 ** ndigits)
except ValueError:
val = np.nan
return val
Data['Outcome'] = (Data['Numerator'].divide(Data['Denominator'])*100).apply(my_round)
print(Data)
</code></pre>
<p>输出:</p>
<pre><code> AreaCode Numerator Denominator Outcome
0 101 300 1000 30.0
1 102 500 780 64.1
2 103 600 1100 54.5
3 104 667 1840 36.3
</code></pre>