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