我意识到这是一个流行的查询,但我在这里没有找到任何与我需要的完全匹配的内容。我在表格中有一列是36.25到36.2,而不是36.3。在这里,我已经广泛地阅读了这方面的内容,我很感激其中的细节,但是这并不能帮助我解决我的问题。我怎样才能创建一些代码,使我的“结果”栏如我所愿?此代码生成我正在使用的df的一个版本:
import pandas as pd
import numpy as np
raw_data = {'AreaCode' : ['101', '102', '103', '104'],
'Numerator' : [300, 500, 600, 667],
'Denominator' : [1000, 780, 1100, 1840]}
Data = pd.DataFrame(raw_data, columns = ['AreaCode', 'Numerator', 'Denominator'])
然后我尝试添加一个“结果”列:
Data['Outcome'] = Data['Numerator'] / Data['Denominator'] * 100
下表:
AreaCode|Numerator|Denominator|Outcome
101|300|1000|30.000000
102|500|780|64.102564
103|600|1100|54.545455
104|667|1840|36.25000
这很好,除非我对它应用Data = Data.round(1)
,它的值是36.250000到36.2。我需要将此列转换为1dp,显示为36.3,但如何用Python编写此列。这里的示例使用用户输入的一次性数字字符串,而不是整个df.column。它不会让我将df.column传递给这些。我试过一个不起作用的例子:
import math
def my_round(n, ndigits):
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)
return part / (10 ** ndigits
我对你的函数做了一点调整,现在似乎可以了:)
输出:
将熊猫导入笔记本后,您可以添加此行,以使您的浮点值不超过小数点后一位:
相关问题 更多 >
编程相关推荐