#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 (с одним столбцом) и
затем объединить).