【问题标题】:The truth value of a Series is ambiguous. How do I fix this error? [duplicate]Series 的真值是模棱两可的。如何修复此错误? [复制]
【发布时间】: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 参数指定的列时会导致此错误。

标签: python pandas if-statement


【解决方案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()

【讨论】:

    猜你喜欢
    • 2022-09-28
    • 1970-01-01
    • 2014-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多