python - 有没有一种简单的方法来改变 pandas 打印整数空值的方式?
问题描述
我正在尝试漂亮地打印具有可为空整数内容的 Pandas DataFrame。该DataFrame.to_string()
方法有一个可选参数 ,na_rep
您可以使用它来覆盖浮点空值的打印方式。至少在 Pandas 1.2.4 中,它似乎不会影响可空整数对象的打印方式。在下面的最小示例中,"<NA>"
当我想要一个空白时,该方法返回字符串。
最小的例子:
import pandas as pd
print(f"\nPandas version = {pd.__version__}")
index = list("abcd")
columns = list("efghjk")
df1 = pd.DataFrame(index=index, columns=columns)
df2 = pd.DataFrame(index=index, columns=columns, dtype=pd.Int32Dtype())
for df in (df1, df2):
df.at["c", "h"] = 7 # Some non-null content
print("\n", df.to_string(na_rep=""))
输出:
Pandas version = 1.2.4
e f g h j k
a
b
c 7
d
e f g h j k
a <NA> <NA> <NA> <NA> <NA> <NA>
b <NA> <NA> <NA> <NA> <NA> <NA>
c <NA> <NA> <NA> 7 <NA> <NA>
d <NA> <NA> <NA> <NA> <NA> <NA>
解决方案
这将起作用:
import pandas as pd
print(f"\nPandas version = {pd.__version__}")
index = list("abcd")
columns = list("efghjk")
df1 = pd.DataFrame(index=index, columns=columns)
df2 = pd.DataFrame(index=index, columns=columns, dtype=pd.Int32Dtype())
for df in (df1, df2):
df.at["c", "h"] = 7 # Some non-null content
print("\n", df.astype('float64').to_string(float_format='%d', na_rep=""))
推荐阅读
- c# - 如何评估 IDebugProperty2 的参考?
- mysql - MySQL Workbench 用于连接 MySQL 服务器的驱动程序
- javascript - 用于自定义属性的 addEventListener 的 jQuery 替代方案
- javascript - 如何将数据从映射对象传递到 React 中的父组件?
- angular - 为什么我的 ngrx Effect 将字符串参数转换为数组?
- node.js - desktopCapturer 示例...如何使其适用于特定应用程序
- graphql - 是否自动提供了 GraphQL 的参数?
- python - Python 3.8 中 unittest 的奇怪之处 - 未检测到测试
- php - 如何将类添加到 php echo 语句?
- opencart-3 - Opencart 3x 菜单版