Series 的真值是模棱两可的。如何修复此错误? [复制]

Posted

技术标签:

【中文标题】Series 的真值是模棱两可的。如何修复此错误? [复制]【英文标题】:The truth value of a Series is ambiguous. How do I fix this error? [duplicate] 【发布时间】:2020-03-31 23:11:11 【问题描述】:

我正在尝试仅针对具有 if 条件的行绘制图表。据我所知,这就是我所做的。

b = pd.read_csv('Zlatan_ClubComp.csv')

print(b.head())

if (b['Competition_Type'] == 'League'):
    pp = sns.pairplot(b, y_vars=['Appearances'], x_vars=['Goals_PerGame', 'Minutes_PerGoal'], hue="Club")
    plt.show()

Zlatan_ClubComp 是我从中获取数据的 csv 文件。我已经运行了代码,这是我得到的错误,

Traceback (most recent call last):
  File "C:/Users/Siddhardh/Desktop/Python/Projects/Zlatan_Analysis/PairPlots.py", line 13, in <module>
    if (b['Competition_Type'] == "League"):
  File "C:\Users\Siddhardh\Desktop\OiDS Project\Zlatan_Analysis\lib\site-packages\pandas\core\generic.py", line 1555, in __nonzero__
    self.__class__.__name__
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

从我所做的谷歌搜索中,我知道 pandas 将条件语句的真值视为模棱两可。但是,我似乎无法解决这个问题。

【问题讨论】:

前提是有缺陷的,因为 if 条件只能在标量上指定。您正在对返回一列布尔值的列应用条件。你明白为什么这不起作用吗?此外,副本中的答案也应该回答您的问题。 我遇到了类似的问题,对我来说,当df 不包含为hue 参数指定的列时会导致此错误。 【参考方案1】:
b = pd.read_csv('Zlatan_ClubComp.csv')

print(b.head())

b = b[b['Competition_Type'] == 'League']

pp = sns.pairplot(b, y_vars=['Appearances'], x_vars=['Goals_PerGame', 'Minutes_PerGoal'], hue="Club")
    plt.show()

【讨论】:

以上是关于Series 的真值是模棱两可的。如何修复此错误? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

sklearn 具有多个元素的数组的真值是模棱两可的。使用 a.any() 或 a.all() 错误

Pandas len 根据给定条件

ValueError:一个系列的真值在一个热编码错误中不明确

基于if语句的for循环,错误消息= Series的真值不明确[重复]

错误:Series 的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()

pandas 错误:Series 的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()