我正在做一个项目,在那里我想显示多少次一个特定的狗品种被提到。有三个狗品种(golden_retriever,labrador_retriever,吉娃娃),我已经有所有的数字(分别为266,265,179 )。我想要使用海运(和matplotlib内联)来创建一个条形图。到目前为止,我找到的唯一解决方案是将“golden_retriever”放入.csv文件266次(以及“labrador_retriever”265次,等等)。
有一个更优雅的解决方案,但我不知道。为了说明这一点,我希望每个狗品种在x轴上有一个空间,每条狗分别有266,265,179条。我到目前为止掌握的代码:
df = pd.read_csv(‘top_three_dogs.csv’)
sns.countplot(data = df, x = ‘breed_name’).csv文件如下所示,当有更好的方法时,我只是不希望有710行:
breed_name
golden_retriever
golden_retriever
golden_retriever
golden_retriever
labrador_retriever
labrador_retriever
chihuahua
chihuahua来自sns.countplot代码的图有3条条形图,其中有golden_retriever和labrador_retriever,还有吉娃娃,计数为2。
发布于 2020-08-01 17:23:34
如果要为此目的使用seaborn.countplot函数,可以使用数组而不是pandas.DataFrame作为输入数据:
import seaborn as sns
dogs = ['golden_retriever'] * 266 + ['labrador_retriever'] * 265 + ['chihuahua'] * 179
sns.countplot(dogs)发布于 2020-08-01 17:38:44
我认为避免多个文件的一种方法是首先在数据帧的列上执行值计数。这个动作将给你每个狗品种和它的频率(它出现在列的次数),然后你可以简单地绘制海路图。通过这种方式,您可以访问breed_df来查看您正在绘制的内容,并将其实际保存到CSV文件中。
结果:以品种和品种的频度和breeds_frecuency.csv的信息!
df = pd.read_csv(‘top_three_dogs.csv’)
breed_df = df.breed.value_counts().sort_index().to_csv("breeds_frequency.csv")
seaborn.barplot(x=df.breed.value_counts().index,y=df.breed.value_counts())https://stackoverflow.com/questions/63207607
复制相似问题