inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

파이썬(Python)으로 데이터 기반 주식 퀀트 투자하기 Part1

2.3 DataFrame 데이터 타입

강의 2.3 에서 갑자기 생긴 궁금한 점(답변 항상 감사합니다)

205

오레이달리

작성한 질문수 5

0

s1 = pd.Series(np.arange(1, 6, 1))
s2 = pd.Series(np.arange(
6, 11, 1))
s3 = np.arange(
1, 6, 1)
s4 = np.arange(
6, 11, 1)
pd.DataFrame([s1
, s2], columns=['x', 'xx', 'xxx', 'xxxx', 'xxxxx'], index=["a", "b"])
pd.DataFrame([s3
, s4], columns=['x', 'xx', 'xxx', 'xxxx', 'xxxxx'], index=["a", 'b'])
pd.DataFrame({
"a": s1, "b": s2}, index=['x', 'xx', 'xxx', 'xxxx', 'xxxxx'])
pd.DataFrame({
"a": s3, "b": s4}, index=['x', 'xx', 'xxx', 'xxxx', 'xxxxx'])

강의 2.3. 듣다가 제가 궁금해서그냥 위와 같이 해 봤는데요.
이렇게 실행해 보니까 시리즈로 변환된 s1, s2를 병합할 때는
칼럼명을 지정해서 병합이 안되네요
애초에 시리즈 만들 때부터 각각 칼럼명을 입력해야만 하나요?
왜 그런가요?

s1 = pd.Series(np.arange(1, 6, 1)) s2 = pd.Series(np.arange(6, 11, 1)) s3 = np.arange(1, 6, 1) s4 = np.arange(6, 11, 1) pd.DataFrame([s1, s2], columns=['x', 'xx', 'xxx', 'xxxx', 'xxxxx'], index=["a", "b"]) Out[75]: x xx xxx xxxx xxxxx a NaN NaN NaN NaN NaN b NaN NaN NaN NaN NaN pd.DataFrame([s3, s4], columns=['x', 'xx', 'xxx', 'xxxx', 'xxxxx'], index=["a", 'b']) Out[76]: x xx xxx xxxx xxxxx a 1 2 3 4 5 b 6 7 8 9 10 pd.DataFrame({"a": s1, "b": s2}, index=['x', 'xx', 'xxx', 'xxxx', 'xxxxx']) Out[77]: a b x NaN NaN xx NaN NaN xxx NaN NaN xxxx NaN NaN xxxxx NaN NaN pd.DataFrame({"a": s3, "b": s4}, index=['x', 'xx', 'xxx', 'xxxx', 'xxxxx']) Out[78]: a b x 1 6 xx 2 7 xxx 3 8 xxxx 4 9 xxxxx 5 10

 

 

pandas 투자 퀀트

답변 1

0

DeepingSauce

안녕하세요! 좋은 실험을 하셨네요.

솔직히 말씀드리면, 일반적으로 Series type에 대한 값들을(여기서 s1, s2) 합칠 때는 pd.DataFrame보다는 뒤에서 배울 pd.concat()으로 진행하는 것이 더 일반적인 관례입니다. 저도 물론 그렇구요.

그리고 제 관점에서 위의 차이에 대해서 분석을 해보면,

s1, s2는 Series이기 때문에, pd.DataFrame 입장에서는 '열' 방향 벡터로 생각을 기본적으로 생각을 할 것 같고, np.arrange의 결과인 np.array에 대해서는 '행' 방향 벡터로 인식을 해서 DataFrame을 만들기 때문에, 위와 같은 결과를 만들어내지않을까 라고 조심스레 추측해봅니다.

예를 들어

pd.DataFrame(     

    columns=['x', 'xx', 'xxx', 'xxxx', 'xxxxx'], index=["a", "b"]

)

처럼 '데이터의 값' 없이도 똑같은 모습의 DataFrame이 만들어지는데, [s1, s2]의 형태는 지정한 columns, index 형태와 align이 안맞아서 그냥 쓰레기값인 NaN으로 메꾸는게 아닐까 싶네요.

저도 추측성이라 실제 pandas 코드를 다 까보고 들여다봐야 제대로 판단이 가능할 것 같긴합니다 ( pandas github에 가셔서 코드를 직접 까보시는 것도 공부하는데 큰 도움이 되기도 한답니다^^)

한가지 말씀드리면 수없이 Series, DataFrame를 쓰는 입장에서, pd.DataFrame()을 이용해서 다수의 Series를 합치는 경우는 거의 없고, 보통 concat을 많이 쓰기 때문에(일반적으로 보통 그렇습니다), 이 부분 감안하셔서 너무 크게 연연하여 뒷부분 내용을 진행하는데 방해가 되지 않으셨으면 좋겠습니다 : ) (하지만 이런 코드적 내용을 가정하고 검증해보는 것은 정말 좋은 실험입니다! 앞으로도 이런 태도는 향후 큰 도움이 되실거에요!)

감사합니다.

 

No module named 'FinanceDataReader' 문제

0

873

3

처음 requirements.txt 폴더, 문의 드립니다.

0

475

2

강의 5.9 질문있습니다.

0

288

1

2.1 라이브러리가 설치부터 에러가 발생하네요..

0

378

1

파일 설치시 오류 메세지

0

315

1

질문이 있습니다.

0

297

2

7.9 왜 재생이 안되죠? 다른건 다 되는데..

0

231

1

append삭제

0

457

1

이틀째 설치에서 멈췄어요..제발도와주세요

0

1281

1

강의자료

0

358

1

2.6 reindex 관련 예제 질문

0

568

1

my_data

0

293

1

드랍박스 경로 다시 공유해주실수있나요?

0

473

1

fdr 오류 도오ㅏ주세요 ㅠ

0

674

1

row 출력 개수 변경

0

416

1

df.nsmallest(5, "PER(배)") 중 양수값만 표출

0

361

1

df1 = fdr.DataReader("005930", '2018-01-02', '2018-10-30') 오류

0

681

3

!pip install -r requirements.txt 설치시 에러2

0

919

1

!pip install -r requirements.txt 설치시 에러

0

1577

1

강의 7.9, 슈퍼가치전략 질문

0

298

0

주피터 라이브러리 설치(pandas, numpy, finance-datareader) 관련 문의

0

595

1

pivot() 하니 row의 수가 줄어들었는데 이유가 무엇인지요?

0

363

1

설치 에러

0

383

3

가상환경에서 FinanceDataReader import

0

550

1