Ошибка атрибута: объект ‘Series’ не имеет атрибута ‘merge’

#python #pandas

#python #pandas

Вопрос:

Я хочу объединить два набора данных в один, вот код, который я написал

 application_prev_data = application_data.merge(previous_application, left_on='SK_ID_CURR', right_on='SK_ID_CURR', how='inner')

application_prev_data.head() 
  

Но он продолжает выдавать мне сообщение об ошибке.. что мне делать? есть предложения?

 AttributeError                            Traceback (most recent call last)
<ipython-input-30-f97d87cba0a8> in <module>
----> 1 application_prev_data = application_data.merge(previous_application, left_on='SK_ID_CURR', right_on='SK_ID_CURR', how='inner')
      2 application_prev_data.head()

~anaconda3libsite-packagespandascoregeneric.py in __getattr__(self, name)
   5128             if self._info_axis._can_hold_identifiers_and_holds_name(name):
   5129                 return self[name]
-> 5130             return object.__getattribute__(self, name)
   5131 
   5132     def __setattr__(self, name: str, value) -> None:

AttributeError: 'Series' object has no attribute 'merge'
  

У меня последняя версия pandas (или, по крайней мере, это то, во что я верю)

 Python: 3.7.6 (default, Jan  8 2020, 20:23:39) [MSC v.1916 64 bit (AMD64)]
Numpy: 1.18.1
Pandas: 1.1.1
MatplotLib: 3.1.3
Seaborn: 0.10.0
Scipy: 1.4.1
  

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

1. Series это один столбец, поэтому вы не можете merge использовать его в другом столбце. Вы можете объединить только два фрейма данных. И да, объект ‘Series’ не имеет атрибута ‘merge’. Таким образом, вместо предоставления Series вы должны предоставить DataFrame в качестве входных данных и в качестве application_data .

Ответ №1:

Обратите внимание, что merge — это метод DataFrame, а не Series.

Поэтому измените свой код на:

 application_prev_data = application_data.to_frame().merge(...)
  

(сначала преобразуйте вашу серию в DataFrame (с одним столбцом) и
затем объединить).