我想打印这样的东西:
print("Average age is: " + round(data.loc[data["School1"]==1]["Age"].mean(),2)
不过,我有一个TypeError:
can only concatenate str (not "float") to str
我的浮动货币,表示
round(data.loc[data["School1"]==1]["Age"].mean(),2)
= 15.23如何打印?
最佳答案
该错误告诉您它不知道如何连接(连接)float
和string
。换句话说,它不知道将(+
)和string
相加的含义。
val=round(data.loc[data["School1"]==1]["Age"].mean(),2)
print("float value: {}".format(val))
要么
val=data.loc[data["School1"]==1]["Age"].mean()
print("float value: %.2f" % val)
应该都可以。如果您仍然遇到问题,我可以进行测试并提供更多信息,但是示例
float
对象将很有用。笔记:
不需要中间
data
,但是我想保持val
语句的清洁。print
将浮点数限制为2个小数位,因此在第二个方法中无需调用%.2f
。上面的两种方法都可以支持多次插入:
例如:
round()
将打印print("{} {}".format("hello","world"))
。第二种方法看起来像
hello world
。对于第二种方法,除了
print("%s %s" % ("hello", "world"))
(字符串)和%s
(浮动)外,还有其他选择。您可能会发现https://pyformat.info/很有帮助,因为它更详细地讨论了这两种方法。
您需要进行的最小更改是使用
%f
方法包装float
,将其从str()
转换为float
(请参阅本段下面的代码块)。完成后,python知道如何使用string
运算符连接两个字符串。它将起作用,但是我认为这会使事情变得混乱,尤其是当您将多个变量转换并连接到一个字符串变量或print语句中时。print("Average age is: " + str(round(data.loc[data["School1"]==1]["Age"].mean(),2)))
关于python - 如何在Pandas中打印 float ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59310698/