Skip to main content
 首页 » 编程设计

python之如何在 Pandas 中打印 float

2025年05月04日14lexus

我想打印这样的东西:

print("Average age is: " +  round(data.loc[data["School1"]==1]["Age"].mean(),2) 

然而我有一个类型错误:can only concatenate str (not "float") to str

我的 float ,表示 round(data.loc[data["School1"]==1]["Age"].mean(),2) = 15.23

如何打印?

请您参考如下方法:

错误告诉您它不知道如何连接(连接)float 和 string。换句话说,它不知道添加 (+) string 和 float 的含义。

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)  

应该都有效。如果您仍然卡住,我可以测试并提供更多信息,但示例 data 对象会很有用。

注意事项:

  • 不需要中间的 val,但我想保持 print 语句干净。
  • %.2f 将 float 限制为小数点后两位,因此在第二种方法中不需要调用 round()。
  • 以上两种方法都可以支持多次插入:
    • 例如:print("{} {}".format("hello","world")) 将打印 hello world。
    • 第二种方法看起来像print("%s %s"% ("hello", "world"))。
  • 对于第二种方法,除了%s(string)和%f(float)之外,还有其他选择。

您可能会找到 https://pyformat.info/很有帮助,因为它更详细地讨论了这两种方法。

您需要做的最少量更改是用 str() 方法包装您的 float 以将其从 float 转换为 string(请参阅本段下方的代码块)。完成后,python 知道如何使用 + 运算符连接两个字符串。它会起作用,但我认为它会使事情变得困惑,尤其是当您将多个变量转换并连接到一个字符串变量或打印语句中时。

print("Average age is: " +  str(round(data.loc[data["School1"]==1]["Age"].mean(),2)))