df . append 또는 cocnat, merge, join 등을 (axis=1) 방향으로 병합할 때
229
3 asked
질문 드려요!
df를 axis=1 방향 -> 이쪽방향으로 추가하려고 합니다.
이 때,
df1 = pd.DataFrame()
for i in dflist:
df1 = pd.concat([df1, i], axis=1, join='outer')
대략 이런식으로 설정하려고 합니다.
그리고 매월 혹은 분기마다 종목들이 설정되게 하려고합니다.
해당코드가 '멀티팩터'에서 사용되는데,
밸류팩터에서 1개종목, 모멘텀팩터에서 1개종목, 퀄리티팩터에서 1개종목, 배당팩터에서 1개종목
이렇게 해서 매 분기 4종목씩 소팅이 되게 하려하는 목적입니다.
그리고 그 4개 종목에 동일배분을 하려고 하고요!!
다만, 한 분기에 모멘텀팩터와 밸류펙터에서 같은 종목을 선택하는 경우에
그 분기에는 3개종목만 픽 하게 됩니다.
이 때, 데이터프레임에 3개 종목만 골라지게 되면
원래 4개 종목일 땐 각 팩터당 25%씩 투자해서 sum=100% 를 맞춰주는건데
3개 종목으로 소팅 되면 2개 팩터가 1개 팩터를 골랐을 때 그 1개종목엔 50%를 주고, 나머지 각 팩터의 각 종목(2개)는 25%씩
줘야 하는게 로직 상 맞습니다.
다만, 이렇게 했을 때 코드 차원에서 df를 axis=1 방향으로 추가할 때 인덱스를 종목으로 주어서 axis=0방향으로도 추가가 되는데
컬럼이 axis=1방향으로 df들이 결합될 때 늘어나는 row에서 코딩이 같은 종목을 중복값 처리 해버리네요...

이런식으로요!! A라는 종목이 한 번 더 row 밑으로 추가가 되어야 하는데 컬럼에서 값이 있다보니 그 값을 사용하면서
중복처리가 되어버립니다 ㅠ_ㅠ
append 도 사용해보고 join 도 사용해보고 ignore index 무시도 해보고, 모든 경우의 수를 다 해보았는데
안되어서.. 이럴 때 어떻게 해야하는지 코드좀 요청 드립니다 ;ㅅ;
혹시 이럴 때 if문을 사용해서 ~~가 ~~일 때에는 중복 무시 이런식으로 컨디셔너 소팅을 for loop 안에 해야하는지요.
Answer 1
0
안녕하세요!
제가 질문을 잘 이해못한것 같은데, 아래 3가지를 간단한 예시로 올려주실 수 있을까요?
- input dataframe(s)
- 기대한 output dataframe
- 원하는 output dataframe
수업 질문 있습니다!
0
179
1
분할 매매와 수익률 !!
0
253
2
물타기(매월 일부 투자금액 증액 효과)
0
210
2
short index 관련 질문드립니다.
0
289
1
CAGR, sharpratio 값이 다르게 나오는 이유?..추측?
0
262
1
fdr.DataReader 오류
0
1417
3
fdr.DataReader 오류
0
427
1
안녕하세요 ! 강의 내용 정리해서 github에 업로드 해도 될까요 ?
0
554
1
inverse volatile 질문입니다
0
261
1
실전1 관련
0
248
1
loc
0
252
1
cumulative rtn을 이용 부분 질문
0
277
1
퍼포먼스 지표에 표준편차를 추가하고싶은데요
0
302
1
궁금한 점이 있어 문의합니다.
0
478
4
올웨더 관련 문의
0
322
2
5:53
0
313
1
개념질문입니다
0
293
1
4.4 Rolling correlation : 상관계수를 구할때 의문이 생겼습니다.
0
446
1
시계열이 다른 자산의 포트폴리오 계산
0
361
1
타임스탬프 질문
0
329
1
으아아아아아
0
328
0
Vectorizing / Event-based Backtesting
0
540
1
후속 강의를 간절히 기다리고 있습니다.
0
211
1
지수가중이동평균의 alpha 방식 쓰임에 대한 질문입니다.
0
407
1

