AttributeError:'bool‘对象在我的Python数据分析中没有'all’属性,我正在尝试使用pandas/matplotlib添加给定某个国家的泥石流数据的死亡总数。然后,我想使用seaborn将数据可视化到柱状图上。然而,每当我这样做的时候,我都会得到一个AttributeError:'bool‘对象没有'all’属性的错误。我正在使用的CSV文件可以在这里找到:到目前为止,这是我的代码。
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
sns.set_style("dark")
csv = pd.read_csv('GLC03122015.csv')
count = csv[csv['country'].str.contains('Mexico|United States|Canada', na = False)]
#sns.scatterplot(x=count.country, y=csv.fatalities, data=csv)
sns.barplot(x=count.country, y=csv.loc[csv['country'].isin(['Mexico', 'United States', 'Canada']), 'fatalities'].sum(), data=csv)
plt.show()发布于 2021-05-08 20:39:39
您最终向y参数传递了一个常量(342),而来自Seaborn的barplot期望:
参数: x,y,hue :数据或矢量数据中的变量名称,可选
作为替代方案,您可以使用已有数据帧的筛选器版本(count),并使用Pandas groupby按国家/地区对fatalities进行分组,然后使用sns.barplot绘制每个国家/地区的死亡人数并绘制。
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
sns.set_style("dark")
csv = pd.read_csv('GLC03122015.csv')
count = csv[csv['country'].str.contains('Mexico|United States|Canada', na = False)]
country_sum = count.groupby('country')['fatalities'].sum()
sns.barplot(x=country_sum.index, y=country_sum.values)
plt.show()

https://stackoverflow.com/questions/67047695
复制相似问题