Python 使用pandas打印CSV文件列中出现的频率

Python 使用pandas打印CSV文件列中出现的频率,python,pandas,plot,unique,frequency,Python,Pandas,Plot,Unique,Frequency,因此,我试图从提供的数据集以CSV文件的形式,按国家划分鲨鱼攻击的数量。我对Python、Pandas和Matplotlib库比较陌生,我相信我在语法方面有困难 目前我遇到了一个错误: AttributeError:“非类型”对象没有属性“更新” 这是我的密码: import pandas as pd import matplotlib.pyplot as plt; plt.rcdefaults() import numpy as np import matplotlib.pyplot as p

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

目前我遇到了一个错误:

AttributeError:“非类型”对象没有属性“更新”

这是我的密码:

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()

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

您可以使用
df
自身进行绘图:

df['Country'].value_counts().plot(kind='bar')

对我来说,上面的代码可以在笔记本中使用。 我已将此文件用作输入

我很欣赏您的评论,但是我实际上需要使用MatPlotLib制作3种不同的绘图,一种直线图、条形图和饼图,因此我想我的问题在于错误消息本身。我知道,您可以使用pandas(内部调用适当的MatPlotLib函数)制作所有3种,因此我尝试使用上述代码,但是它只是运行文件,我没有看到plot@MarkCrabtree:你在用Jupyter笔记本吗?如果是,请使用<代码>%matplotlib内联。否则上面的代码应该在哪一行产生错误?