首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用pandas绘制CSV文件中某列的出现频率

使用pandas绘制CSV文件中某列的出现频率
EN

Stack Overflow用户
提问于 2018-06-16 06:03:37
回答 2查看 3.7K关注 0票数 0

因此,我尝试从提供的CSV文件形式的数据集中按国家绘制Shark攻击的数量。我对Python、Pandas和Matplotlib库比较陌生,我相信在语法方面有困难。

目前我遇到了一个错误:

AttributeError:“NoneType”对象没有属性“”update“”

以下是我的代码:

代码语言:javascript
复制
import pandas as pd
import matplotlib.pyplot as plt; plt.rcdefaults()
import numpy as np
import matplotlib.pyplot as plt

#read in csv file
df = pd.read_csv('SharkAttack.csv',delimiter=",", encoding='cp1252', header=0)

#Correct Missing Country Names
df.loc[df['Area'].str.contains('Florida', na=False), 'Country'] = 'USA'

#correct Missing Values
df.fillna("NaN")



x = df['Country'].unique().tolist()


y = df['Country'].nunique()


plt.bar(x, y, align='center', alpha=0.5)

plt.ylabel('Number Of Attacks')
plt.xlabel("Country")
plt.title('Shark Attacks by Country')

plt.show()

你知道我怎么解决这个问题吗?当列表中的唯一项的数量小到可以硬编码时,创建一个数组非常简单,但文件中有大量的国家/地区列表。

EN

回答 2

Stack Overflow用户

发布于 2018-06-16 06:25:15

您可以使用df本身绘制绘图:

代码语言:javascript
复制
df['Country'].value_counts().plot(kind='bar')
票数 1
EN

Stack Overflow用户

发布于 2018-06-16 06:57:51

对我来说,上面的代码可以在notebook中运行。我已经将此文件用作输入https://github.com/ibmw/Shark-Attack/blob/master/shark_attack.csv

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50883202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档