Pandas возвращает ошибку: объекты ‘Series’ изменчивы, поэтому их нельзя хэшировать

#python #pandas

#python #pandas

Вопрос:

У меня здесь проблема, я пытался найти определенное значение в моем фрейме данных. Однако я получил эту ошибку:

 TypeError                                 Traceback (most recent call last)
<ipython-input-245-ded282cec75c> in <module>
----> 1 data.iloc(data['Amount'] == '11,99')

~Anaconda3libsite-packagespandascoreindexing.py in __call__(self, axis)
    576 
    577         if axis is not None:
--> 578             axis = self.obj._get_axis_number(axis)
    579         new_self.axis = axis
    580         return new_self

~Anaconda3libsite-packagespandascoregeneric.py in _get_axis_number(cls, axis)
    396     @classmethod
    397     def _get_axis_number(cls, axis):
--> 398         axis = cls._AXIS_ALIASES.get(axis, axis)
    399         if is_integer(axis):
    400             if axis in cls._AXIS_NAMES:

~Anaconda3libsite-packagespandascoregeneric.py in __hash__(self)
   1796 
   1797     def __hash__(self):
-> 1798         raise TypeError(
   1799             f"{repr(type(self).__name__)} objects are mutable, "
   1800             f"thus they cannot be hashed"

TypeError: 'Series' objects are mutable, thus they cannot be hashed
 

Как я могу продолжить?

 import pandas as pd 
import matplotlib.pyplot as plt
import numpy as np

data = pd.read_csv('Data.csv', sep = ';')

data.iloc(data['Amount'] == '11,99')
 

Комментарии:

1. Не могли бы вы попробовать data[data[‘Amount’] == ‘11,99’] и сообщить. Также вы пытаетесь сравнить количество с несколькими значениями или значение ‘11,99’ является значением?

2. Привет, все сработало так, как вы описали. Вы можете себе представить, что у меня есть CSV-файл с данными транзакции, и сумма — это сумма для определенного идентификатора транзакции.

3. Престижность.. Публикую фрагмент кода в качестве ответа тоже для справки .. рад, что это сработало ..!

Ответ №1:

Используйте data[data['Amount'] == '11,99'] его, он должен работать просто отлично ..!