繁体   English   中英

如何使用 python 可视化来自 dataframe 的分组数据

[英]How to visualize grouped data from a dataframe using python

在我的 dataframe 中对两列数据进行分组后,我获得了一个小的整数表,我在下面附上了它的图像(它已作为链接给出,因为我在堆栈溢出中发布非常新)。

请点击此处查看数据图片

这是用于分组的代码:

count = x_train.groupby(['bool_loc', 'target']).size() 

我正在尝试使用 python 可视化此数据(类型 int64),并认为可能是具有两个类别 0 和 1(用于列“bool_loc”)的直方图,并且每个类别都有两个条形图(用于列“目标”),它们的高度代表频率将是这样做的好方法。 我试过这样:

# create figure and axis
fig, ax = plt.subplots()
# plot histogram
ax.hist(count)
# set title and labels
ax.set_title('Relation Between Location Data Presence and Disaster Tweets')
ax.set_xlabel('Location Data Presence')
ax.set_ylabel('Frequency of Tweets')

我得到的直方图:

获得的直方图图像

似乎频率数据是沿着 x 轴(它应该在 y 轴上)而不是“bool_loc”中的数据绘制的。 我非常感谢这方面的一些指导,并欢迎其他可视化技术。

** 请告诉我这个问题是否需要更清楚

我试图根据您的 dataframe 的形状来可视化直方图。 结果如下: 2 个直方图,2 个 bin

我不确定这是否符合您的数据输入,因为我只是制作了与您帖子中的类似的 dataframe 。 可能你有不同的做法。

代码如下:

import pandas as pd

import matplotlib
import numpy as np
import matplotlib.pyplot as plt

# make dataframe
arrays = [[0, 0, 1, 1],
          [0, 1, 0, 1]]
data = [1458, 1075, 2884, 2196] 
df = pd.DataFrame(data, index=arrays, columns=['frequency'])

# get data from DF series
y1 = df.loc[0,'frequency'].to_list()
y2 = df.loc[1,'frequency'].to_list()

# get data arrays
arr1 = [0] * y1[0] + [1] * y1[1]
arr2 = [0] * y2[0] + [1] * y2[1]

# set matplotlib plot
fig, ax = plt.subplots()

# plot histogram
num_bins = 2
ax.hist([arr1, arr2], num_bins, density=False, label=['bool_loc 0', 'bool_loc 1'])
plt.legend(loc='upper right')
plt.show()

您似乎希望我们为您编写代码。 如果是的话,您之前是否尝试过包含您有问题的代码。 这对我们来说很容易理解,因此我们可以为您修改正确版本的代码。 谢谢

我对你的约会不太了解,但还是试试这个

print (data.target.value_counts(normalize=True).plot(kind='bar'))

还要检查如何提出问题https://stackoverflow.com/help/how-to-ask

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM