python - 如何在 Pandas 中打印浮点数?
问题描述
我想打印这样的东西:
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
我怎样才能打印它?
解决方案
该错误告诉您它不知道如何连接(连接) afloat
和 a string
。换句话说,它不知道添加 ( +
) astring
和 a的含义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
浮点数限制为 2 位小数,因此round()
在第二种方法中不需要调用。 - 上述两种方法都可以支持多次插入:
- 例如:
print("{} {}".format("hello","world"))
将打印hello world
. - 第二种方法看起来像
print("%s %s" % ("hello", "world"))
。
- 例如:
%s
对于第二种方法,除了(string) 和%f
(float)之外,还有其他选择。
您可能会发现https://pyformat.info/有帮助,因为它更详细地讨论了这两种方法。
您需要的最少更改是用将其转换float
为的str()
方法包装您float
的string
(请参阅本段下方的代码块)。完成后,python 知道如何使用+
运算符连接两个字符串。它会起作用,但我认为它会使事情变得混乱,尤其是当您将多个变量转换并连接成一个字符串变量或打印语句时。
print("Average age is: " + str(round(data.loc[data["School1"]==1]["Age"].mean(),2)))
推荐阅读
- c - 尝试在 x64 RedHat 环境中编译 x86 C 程序
- c# - 将文件附加到 System.Net.Mail 时出错。如何修复此错误?
- python - 有没有办法在循环期间从同一个字符串保存多个文件?
- react-native - 如何跳过/修改导航
- c# - 根据属性字符串过滤列表对象
- git - 如何 git rebase、保留合并和移动所有分支?
- java - 如何在 Jersey Client 中关闭模板参数匹配?
- awk - 如果列匹配,则在两个文件中打印行
- powershell - 如何将新的 NoteProperty 添加到 Format-Table 视图?
- java - 仅当在 while 循环中调用函数时,将文件发送到 blob 才有效