Я пытаюсь проанализировать набор данных игроков для домашней работы. У меня есть набор данных, который включает в себя имя, очки, помощь, год и т. Д. Я пытаюсь проанализировать игроков, которые играют в 2017 году, поэтому сначала я хочу напечатать их имена, очки, помощь и т. Д.
Когда я пытаюсь использовать следующий код:
for i in df1.columns:
if df1['Year'] == 2017:
print(df1.loc[:, ["Year","Player","Pos","Team","Games","AST","PTS","PPG"]])
Я получаю ошибку с этим кодом, которая говорит мне, что необходимо добавить .any()
или .all()
.
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-101-c1ff6e025cb7> in <module>()
1 for i in df1.columns:
----> 2 if df1['Year'] == 2017:
3 print(df1.loc[:, ["Year","Player","Pos","Team","Games","AST","PTS","PPG"]])
/opt/conda/lib/python3.6/site-packages/pandas/core/generic.py in __nonzero__(self)
1574 raise ValueError("The truth value of a {0} is ambiguous. "
1575 "Use a.empty, a.bool(), a.item(), a.any() or a.all()."
-> 1576 .format(self.__class__.__name__))
1577
1578 __bool__ = __nonzero__
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
Я добавил их в код.
for i in df1.columns:
if df1['Year'].all() == 2017:
print(df1.loc[:, ["Year","Player","Pos","Team","Games","AST","PTS","PPG"]])
Этот кодовый блок не возвращает никакого вывода (без ошибок и т. Д.)
Также я думаю, что это можно сделать с помощью понимания списка, но я не смог найти способ. Должно быть так:
df2 = [df1['Year','Player','Pos','Team','Games','AST','PTS','PPG'] if (df1['Year'].any() == 2017) else "Bye" for i in df1.Year]
print(df2)
Но здесь есть проблема, которая заключается в том, что этот код всегда вводит оператор else и выводит только «Пока».