【问题标题】:Need to countplot the data types in a dataframe需要对数据框中的数据类型进行计数
【发布时间】:2020-04-05 09:06:02
【问题描述】:

我需要为数据框中的不同数据类型创建一个 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()

【问题讨论】:

  • 也许是sns.countplot([str(a) for a in df.dtypes])?

标签: python pandas dataframe


【解决方案1】:

您只需要传递dtypes 系列,但请确保将类型对象转换为字符串。 Matplotlib 无法显示您作为 numpy.dtypes 传递的标签。试试这个:

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()

输出:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-09
    • 1970-01-01
    • 2016-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-23
    相关资源
    最近更新 更多