묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결내 업무를 대신 할 파이썬(Python) 웹크롤링 & 자동화 (feat. 주식, 부동산 데이터 / 인스타그램)
pd.concat(df, ignore_index=True) InvalidIndexError 해결 방법 문의
안녕하세요.아래 코드에서 마지막 부분에서 에러가 발생하는데 찾아봐도 해결을 못하겠습니다. # 최종 데이터 합치기 df1 = pd.concat(df, ignore_index=True) --------------------------------------------------------------------------- InvalidIndexError Traceback (most recent call last) Cell In[89], line 2 1 # 최종 데이터 합치기 ----> 2 df1 = pd.concat(df, ignore_index=True) File ~\anaconda3\Lib\site-packages\pandas\core\reshape\concat.py:393, in concat(objs, axis, join, ignore_index, keys, levels, names, verify_integrity, sort, copy) 378 copy = False 380 op = _Concatenator( 381 objs, 382 axis=axis, (...) 390 sort=sort, 391 ) --> 393 return op.get_result() File ~\anaconda3\Lib\site-packages\pandas\core\reshape\concat.py:676, in _Concatenator.get_result(self) 674 obj_labels = obj.axes[1 - ax] 675 if not new_labels.equals(obj_labels): --> 676 indexers[ax] = obj_labels.get_indexer(new_labels) 678 mgrs_indexers.append((obj._mgr, indexers)) 680 new_data = concatenate_managers( 681 mgrs_indexers, self.new_axes, concat_axis=self.bm_axis, copy=self.copy 682 ) File ~\anaconda3\Lib\site-packages\pandas\core\indexes\base.py:3875, in Index.get_indexer(self, target, method, limit, tolerance) 3872 self._check_indexing_method(method, limit, tolerance) 3874 if not self._index_as_unique: -> 3875 raise InvalidIndexError(self._requires_unique_msg) 3877 if len(target) == 0: 3878 return np.array([], dtype=np.intp) InvalidIndexError: Reindexing only valid with uniquely valued Index objects ============================ df = []articleNos = ['2433459189','2433504511']for articleNo in articleNos: ind_url = f'https://new.land.naver.com/api/articles/{articleNo}?complexNo=' res = requests.get(ind_url, headers=headers) ind_dict = res.json() article_df = pd.Series(ind_dict['articleDetail']).to_frame().T # articleDetail_df = articleDetail_df[['articl/eNo','articleName','buildingTypeName','realestateTypeName', 'tradeTypeName', 'cityName','divisionName', 'sectionName', 'etcAddress', 'monthlyManagementCost', 'buildingName']] if 'articleFloor' in ind_dict.keys(): articleFloor_df = pd.Series(ind_dict['articleFloor']).to_frame().T article_df = pd.concat( [ article_df, articleFloor_df, ], axis=1 ) else: print(articleNo, '/', 'articleFloor') # articleFloor_df = articleFloor_df[['totalFloorCount','correspondingFloorCount']] if 'articlePrice' in ind_dict.keys(): articlePrice = pd.Series(ind_dict['articlePrice']).to_frame().T article_df = pd.concat( [ article_df, articlePrice, ], axis=1 ) else: print(articleNo, '/', 'articlePrice') # articlePrice_df = articlePrice_df[['dealPrice','allWarrantPrice','allRentPrice']] if 'articleRealtor' in ind_dict.keys(): articleRealtor = pd.Series(ind_dict['articleRealtor']).to_frame().T article_df = pd.concat( [ article_df, articleRealtor, ], axis=1 ) else: print(articleNo, '/', 'articleRealtor') # articleRealtor_df = articleRealtor_df[['realtorName','representativeName','cellPhoneNo','representativeTelNo']] if 'articleSpace' in ind_dict.keys(): articleSpace = pd.Series(ind_dict['articleSpace']).to_frame().T article_df = pd.concat( [ article_df, articleSpace, ], axis=1 ) else: print(articleNo, '/', 'articleSpace') # articleSpace_df = articleSpace_df[['supplySpace','exclusiveSpace']]# article_df = pd.concat(# [# articleDetail_df,# articleFloor_df,# articlePrice_df,# articleRealtor_df,# articleSpace_df, # ],# axis=1# ) df.append(article_df) # 최종 데이터 합치기 df1 = pd.concat(df, ignore_index=True)
-
미해결공공데이터로 파이썬 데이터 분석 시작하기
질문있습니다
선생님 강의 정말 재밌게 잘 보고 있습니다! concat을 이용해서 데이터 합치는 연습을 혼자서 해보고 있었는데 영상 속에서는 pd. concat([df1, df2])이런식으로 하면 알아서 인덱스도 1부터 매겨지고, 연도도 오름차순으로 정렬이 되었는데요 저는 혼자 따로해보니 연도가 들쑥 날쑥하고 인덱스 번호도 들쑥 날쑥합니다.. 왜그런가 이것 저것 살펴보니 저는 pd.concat([df2, df1])처럼 순서를 앞뒤 바꾸어놨었네요 근데 이 순서에 따라 어떻게 결과값이 달라지는지 궁금해서 질문 올립니다!
-
미해결공공데이터로 파이썬 데이터 분석 시작하기
합치기
안녕하세요 선생님 질문이 있습니다. 1. 239166 rows × 17 columns 2. 150414 rows × 2 columns 위의 두행을 합치려고 합니다. 저의 생각은 1번의 데이터프레임을 옆에다가 2번의 데이터프레임을 붙여 밑에 nun값에 해당되는 부분을 drop을 시킬려는게 계획이였습니다. 따라서 merge ( 1 , 2 , how = outer)을 적용할려고 했으나 에러에 concat을 사용하라는게 이유였습니다. 제가 생각했던 방향성을 가지고 데이터프레임을 합치기 위해선 어떤 코드를 이용하여 데이터프레임을 합칠 수 있을까요? 다시한번 말씀드리면 어떤 특정 데이터프레임에다가 또 다른 데이터 프레임을 그대로 붙여 중간중간마다 nun값이 생기는것이아니라 부족한 데이터에 nun값이 생기는 부분을 drop시킬 수 있는 합치기를 원합니다.