Python Pandas.DataFrame.hist()仅显示连续/数字数据

Python Pandas.DataFrame.hist()仅显示连续/数字数据,python,pandas,matplotlib,Python,Pandas,Matplotlib,我有一个数据框,看起来像这样: Pclass Sex Age SibSp Parch Fare Embarked FamilySize \ PassengerId 1 3 male 22.0 1 0 7.2500 S

我有一个数据框,看起来像这样:

             Pclass     Sex   Age  SibSp  Parch     Fare Embarked  FamilySize  \
PassengerId                                                                     
1                 3    male  22.0      1      0   7.2500        S           2   
2                 1  female  38.0      1      0  71.2833        C           2   
3                 3  female  26.0      0      0   7.9250        S           1   
4                 1  female  35.0      1      0  53.1000        S           2   
5                 3    male  35.0      0      0   8.0500        S           1   

             Alone Title      LName  Survived  
PassengerId                                    
1                0    Mr     Braund       0.0  
2                0   Mrs    Cumings       1.0  
3                1  Miss  Heikkinen       1.0  
4                0   Mrs   Futrelle       1.0  
5                1    Mr      Allen       0.0  
使用pandas.DataFrame.hist()可提供以下打印输出:

此输出仅显示数字数据,而不显示分类数据。文档上写着:

此函数对数据帧中的每个系列调用matplotlib.pyplot.hist(),从而产生每列一个直方图

我认为这可能意味着
matplotlib.pyplot.hist()
可能无法处理分类数据,因此我尝试直接在只包含分类数据的列上调用它:

matplotlib.pyplot.hist(df['Embarked'])
此外,我还尝试直接在切片数据帧上调用
.hist()

df['Embarked'].hist()
这两种选择都产生了完美的结果:


我可以想出至少一个解决方法来解决这个问题,但是在我开始一个麻烦的旅程之前,我是否缺少了一些东西?

代码按照您的要求执行。在datatframe上绘制直方图。当你开始制作熊猫系列时,它也做了你让它做的事情。直方图有助于直观显示一组连续数据的频率分布。请复习。在pandas中,如果需要单个绘图,则会将其应用于系列。Series是一个一维标记数组,能够保存任何类型的数据(整数、字符串、浮点、python对象等)。要在分类数据上绘制直方图,必须通过链接适当的函数使序列连续。我建议您熟悉两种代码之间的区别,代码按照您的要求执行。在datatframe上绘制直方图。当你开始制作熊猫系列时,它也做了你让它做的事情。直方图有助于直观显示一组连续数据的频率分布。请复习。在pandas中,如果需要单个绘图,则会将其应用于系列。Series是一个一维标记数组,能够保存任何类型的数据(整数、字符串、浮点、python对象等)。要在分类数据上绘制直方图,必须通过链接适当的函数使序列连续。我建议您熟悉a

之间的差异,然后文档中的这句话不是真的“此函数对数据帧中的每个系列调用matplotlib.pyplot.hist(),导致每列一个直方图。”如果它真的这样做了,它将为每列创建一个图。事实上,正如我所说,我通过手动操作证明了这一点。我直接对包含分类数据的序列调用了matplotlib.pyplot.hist(),它的功能如前所述。您可以谈论条形图和直方图之间的差异,但这并不能回答问题,也不能解决文档中的不一致性。那么文档中的这句话就不是真的“此函数对数据帧中的每个系列调用matplotlib.pyplot.hist(),导致每列一个直方图。”如果它真的这样做了,它会为每一列创建一个绘图。事实上,正如我所说,我通过手动操作证明了这一点。我直接对包含分类数据的序列调用了matplotlib.pyplot.hist(),它的功能如前所述。您可以谈论条形图和柱状图之间的差异,但这并不能回答问题,也不能解决文档中的不一致性。