inflearn logo
강의

Course

Instructor

Finding Signals and Noise through Python Stock Data Collection and Analysis

[5/6] Viewing the entire data collection process with tqdm, merging data with merge, and saving data with to_csv

concat 을 통한 데이터 프레임 합치기 에러 문의

105

pgbwings

2 asked

0

 

df_item_info = pd.concat(result.tolist())

df_item_info = df_item_info.reset_index()

df_item_info["종목코드"] = df["종목코드"]

7분 40초경 강의의 위 코드 실행시

 

InvalidIndexError                         Traceback (most recent call last)
Cell In[49], line 6
      1 # result를 list로 만들고 concat을 통해 DataFrame으로 만듭니다.
      2 # concat으로 데이터프레임을 합쳐줄때는 리스트 형태로 각 데이터프레임을 넣어주어야 합니다.
      3 # result_valid = result[result.notnull()]  # 또는: result.dropna()
      4 # df_item_info = pd.concat(result_valid.tolist(), ignore_index=True)
----> 6 df_item_info = pd.concat(result.tolist())
      7 df_item_info = df_item_info.reset_index()
      8 df_item_info["종목코드"] = df["종목코드"]

File ~\anaconda3\Lib\site-packages\pandas\core\reshape\concat.py:395, in concat(objs, axis, join, ignore_index, keys, levels, names, verify_integrity, sort, copy)
    380     copy = False
    382 op = _Concatenator(
    383     objs,
    384     axis=axis,
   (...)
    392     sort=sort,
    393 )
--> 395 return op.get_result()

File ~\anaconda3\Lib\site-packages\pandas\core\reshape\concat.py:680, in _Concatenator.get_result(self)
    678         obj_labels = obj.axes[1 - ax]
    679         if not new_labels.equals(obj_labels):
--> 680             indexers[ax] = obj_labels.get_indexer(new_labels)
    682     mgrs_indexers.append((obj._mgr, indexers))
    684 new_data = concatenate_managers(
    685     mgrs_indexers, self.new_axes, concat_axis=self.bm_axis, copy=self.copy
    686 )

File ~\anaconda3\Lib\site-packages\pandas\core\indexes\base.py:3885, in Index.get_indexer(self, target, method, limit, tolerance)
   3882 self._check_indexing_method(method, limit, tolerance)
   3884 if not self._index_as_unique:
-> 3885     raise InvalidIndexError(self._requires_unique_msg)
   3887 if len(target) == 0:
   3888     return np.array([], dtype=np.intp)

InvalidIndexError: Reindexing only valid with uniquely valued Index objects

위와 같이 오류가 납니다.

OUTPUT 파일 이용해서 실행했었고 중간에 오류나는것들은 CHATGPT 통해서 해결했는데 위의 오류만큼은 CHATGPT를 통해도 해결이 안되네요.

혹시 해결 방법을 알 수 있을까요?

 

 

python pandas numpy 웹-크롤링 seaborn plotly matplotlib 웹-스크래핑

Answer 2

1

maybeallthistime

이거 저도 같은 에러가 있었는 데,
저의 경우에는 result로 가져온 데이터프레임 중에 컬럼명이 Nan(null)로 된 데이터프레임을 제거해서 작업하면 됐습니다.

단, result와 df 간 행의 수를 맞춰야 되어서, df도 같은 행을 제거해줘야 합니다.(df.shape와 df_item_info.shape로 최종적으로 행의 수가 같은지 확인해야함. 동일하지 않으면 추후에 데이터 분석이 불가능해짐)

 


0.12. concat을 통한 데이터 프레임 합치기
#여기 아래에서 시작
#result를 list로 만들고 concat을 통해 DataFrame으로 만듭니다 
## 라고 적힌 부분부터 수정해서 작성했습니다. 

li = []
detected_i = []
for i, r in enumerate(result):
    if r.columns.isnull.sum() == 0:
        li.append(r)
    else : 
        detected_i.append(i)
df = df.drop(detected_i)

df_item_info = pd.concat(li)
df_item_info = df_item_info.reset_index()
df = df.reset_index()
df_item_info["종목코드"] = df["종목코드"] 
del df_item_info["index"]

#합쳐줄 해당 종목/테마 데이터프레임을 봅니다.
## 여기에서 끝냈고, 나머지는 강의와 동일합니다. 
df_info = df.merge(df_item_info, on="종목코드")

 

0

todaycode

안녕하세요.

공유해 주셔서 감사합니다!

즐거운 연휴 되세요!

0

todaycode

안녕하세요. 해당 기능을 사용하는 장점이 어떤 컬럼이 올지 몰라도 컬럼 스키마를 지정하지 않고 사용할 수 있다는게 가장 큰 장점인데요. 판다스 기능이 업데이트 되면서 컬럼명 형식 등이 불일치 되는 데이터에 대해 병합 오류가 발생하고 있습니다. 그래서 전체를 병합하기 전에 병합할 일부 컬럼 정보를 지정하고 병합해 보시는 것을 추천드립니다. 조만간 해당 내용에 대해 콘텐츠를 업데이트하도록 하겠습니다. 이용에 불편을 드려 죄송합니다. 감사합니다!

cufflinks 버전문제로 iplot() 미실행

0

44

2

[수정요청]직접 수집한 주가 데이터로 시각화해보기

0

52

2

pd.read_html(url, encoding='cp949') 에러

0

75

2

fdr.StockListing('KRX') 문제 발생

0

137

2

주식 자동매매 프로그램 제작 관련 조언 부탁드립니다

0

431

1

한글폰트 관련해서 문의드립니다.

0

230

2

데이터프레임 칼럼명 문의 드립니다.

0

239

3

금융데이터 수집의 모든것

0

145

2

녹화시점과 현재시점 컬럼명이 변경이 많이 되었을까요?

0

192

2

파이썬 증권 데이터 수집과 분석으로 신호와 소음 찾기 - 섹션1 [2/2]

0

175

1

Mac 환경에서 nbextensions 활성화 하는 방법

0

594

2

pd.concat(result.tolist()) 오류 문의

0

244

1

5.1 제약 데이터 수집 오류 해결

0

231

1

Table of contents 문의드립니다

0

210

2

concat을 통한 데이터프레임 합치기

0

548

2

Reindexing only valid with uniquely valued Index objects 오류 질문입니다.

0

491

1

데이터 비교시 데이터 불일치

0

410

1

dtype={"itemcode": np.object}) 을 dtype={"itemcode": object}) 으로 변경해야 하나요?

0

593

1

질문 : for문 풀어쓰기

0

488

1

파이참에서 Plotly 그래프 실행방법

0

1308

1

5.1 데이터프레임 병합(merge)

0

742

2

쥬피터노트북에서 실행파일 만들기

0

1450

1

주피터노트북 확장팩 설치가 안됩니다.

0

562

2

날짜 정보

0

387

1