【问题标题】:AttributeError: 'bool' object has no attribute 'all'AttributeError: 'bool' 对象没有属性 'all'
【发布时间】:2021-07-06 21:40:52
【问题描述】:

AttributeError: 'bool' object has no attribute 'all' 用于我的 Python 数据分析 我正在尝试使用 pandas/matplotlib 添加某个国家/地区的泥石流数据中的死亡总数。然后我想使用 seaborn 在条形图上可视化该数据。但是,每当我这样做时,我都会收到 AttributeError: 'bool' object has no attribute 'all' 错误。我正在使用的 CSV 文件可以在这里找到:这是我目前的代码。

[CSV 数据]https://data.nasa.gov/Earth-Science/Global-Landslide-Catalog/h9d8-neg4

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

【问题讨论】:

  • 您好,您能否指定代码的哪一行出现错误?

标签: python pandas csv matplotlib seaborn


【解决方案1】:

当 Seaborn 的 barplot 期望时,您最终将常量 (342) 传递给 y 参数:

参数:x、y、hue:数据或向量数据中的变量名称,可选

作为替代方案,您可以使用已有数据框的过滤器版本 (count) 并使用 Pandas groupby 按国家/地区分组 fatalities,然后 sum 每个国家/地区的死亡人数和情节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()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-01
    • 2017-06-16
    • 1970-01-01
    • 2020-08-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多