python - 需要对数据框中的数据类型进行计数
问题描述
我需要为数据框中的不同数据类型创建一个 seaborn 计数图。例如在下面的示例中,我应该得到一个计数为 3 的 float64 和计数为 1 的 int64 的条形图。
我发现有人通过将 df.dtypes 作为 x 或 y 参数传递来做到这一点,但我一直收到错误消息。TypeError:数据类型“”不理解请有人知道该怎么做吗?谢谢你的帮助。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.DataFrame({"A":[12, 4, 5, None, 1],
"B":[7, 2, 54, 3, None],
"C":[20, 16, 11, 3, 8],
"D":[14, 3, None, 2, 6]})
print(df.dtypes)
sns.countplot(y=df.dtypes, data=df)
plt.show()
解决方案
您只需要传递dtypes
系列,但请确保将类型对象转换为字符串。Matplotlib 无法显示您作为numpy.dtype
s 传递的标签。尝试这个:
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.DataFrame({"A":[12, 4, 5, None, 1],
"B":[7, 2, 54, 3, None],
"C":[20, 16, 11, 3, 8],
"D":[14, 3, None, 2, 6]})
sns.countplot(df.dtypes.map(str))
plt.show()
输出:
推荐阅读
- delphi - OmniThreadLibrary:如何在不使用匿名过程的情况下运行 Parallel.For.Execute?
- javascript - 如何在不同的 NodeJS 文件中正确返回布尔值?
- selenium - 此版本的 ChromeDriver 尚未使用 Chrome 版本 79 进行测试 使用 ChromeDriver Chrome Selenium 运行 protractorE2E 测试时出错
- mysql - 如何将一个表中的两个元组连接到另一个表中的一个元组
- java - 将 OffSetDateTime 字符串转换为 ZonedDateTime Java
- r - 在ggplot2中将数据表示为椭圆而不是点
- retrofit2 - 如何使用 rxjava 和改造正确关闭可流动和关闭的响应主体
- c# - Asp.net 核心应用程序随机路由停止工作,直到我回收应用程序池
- javascript - 当它弹出时移动小吃栏下方的标签,当它在javascript中消失时将它们移回
- python-3.x - 如何使用子进程获取命令的标准输出?