【发布时间】: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