У меня есть вложенный словарь, в котором я достигаю трех уровней, чтобы вытащить значение, основанное на ключах, соответствующих столбцам в моем фрейме данных. Ниже приведен код, который я использую.
columns = df.columns
for column in columns:
for k1, v1 in model_4_factors.items():
for k2, v2 in v1.items():
for k3, v3 in v2.items():
#print(k3)
if k2 == df['RATING_CLASS_CODE'] and k3 == df['unit_value_factors']:
print(k3)
Я продолжаю получать это значение ошибки, и я не уверен, почему:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-258-ab68e28884a4> in <module>
5 for k3, v3 in v2.items():
6 #print(k3)
----> 7 if k2 == df['RATING_CLASS_CODE'] and k3 == df['unit_value_factors']:
8 print(k3)
C:\ProgramData\Anaconda3\lib\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().
Я пытался использовать iteritems()
, и он говорит мне, что dict не имеет функции iteritems()
. Когда я вынимаю оператор if ==
и просто заставляю python выводить разные уровни k и v, это работает, поэтому я знаю, что мои вложенные циклы верны. Есть идеи?