작성
·
398
1
1. merge 할 때 혹시 이런 조건도 가능한가요?
sql중에 join하면
select * from x as T1
left join y as T2 on T1.columns1 = T2.columns1
and T1.columns2 <> T2.columns2
이와 같이 두 테이블의 칼럼이 같지 않은 조건을 포함할 수는 없나요? merge를 보면 on 절에 = 조건만 들어가는 것 같아서 문의드립니다.
2. 판다스의 groupby는 널값이 있는 행을 제외하고 그룹바이하는 걸로 아는데 어쩔 수 없이 데이터 자체에 널값이 포함되어 있는 경우 행마다 널값에 대한 사전전처리를 하지 않고 널값을 포함한 채로 그룹바이할 수는 없는건가요?
sql은 널값을 포함한 채로 그룹바이가 가능한걸로 알고 있어서 문의드립니다.
답변 3
0
예를 들어 설명을 드리면
DF1
A B C T
0 1 2 33 4
DF2
A B D
0 1 2 33
1 1 2 55
2 1 2 66
DF1을 기준으로 DF2를 붙이는 left merge를 해야 하는데,
칼럼 C의 값과 같지 않은 칼럼 D만 붙이고 싶습니다.
원하는 결과
A B C T D
0 1 2 33 4 55
1 1 2 33 4 66
sql은 아래처럼 가능한것으로 알고 있는데
select * from T1 left join T2 on T1.A = T2.A on T1.A = T2.A on T1.A <> T2.A
파이썬은 혹시 가능한지 문의드립니다.
0
감사합니다. 강사님,
left_on, right_on은 동등조건일로 알고 있는데요 예를 들면 left_on = T1.columA, right_on=T2.columB와 같이 칼럼이름이 다른경우 라도 칼럼 내용이 같으면 이에 따라 left, right, inner, outer 조인인 것으로 알고 있습니다. sql처럼 columnA와 columnB의 내용이 같이 않을 때 조인도 가능할까요?
dropna=False는 멀티인덱싱일 경우 동작을 안하네요.
제가 이 케이스라.. 전처리를 다 하는 수 밖에 없겠네요...
Note that as of this writing, there is a bug that makes dropna=False
fail with MultiIndex grouping.
https://stackoverflow.com/questions/18429491/pandas-groupby-columns-with-nan-missing-values
안녕하세요.
join 을 할 때는 컬럼 이름에 상관없이 key 가 되는 값이 있어야 연결을 할 수 있습니다. 내용이 다른데 조인이 가능하다는게 어떤 의미인지 다시 질문해 주시겠어요? 기준이 되는 값이 있어야 연결을 해줄 수 있습니다.
0
안녕하세요.
1) left_on, right_on 등으로 사용해 볼 수 있습니다.
DataFrame.merge(right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=False, suffixes=('_x', '_y'), copy=True, indicator=False, validate=None)
문서 링크 입니다 : [pandas.DataFrame.merge — pandas 1.4.2 documentation](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.merge.html)
2) dropna=False 로 사용해 보세요!
문서 링크 입니다 : [pandas.DataFrame.groupby — pandas 1.4.2 documentation](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.groupby.html)
안녕하세요.
아쉽게도 판다스는 on 을 통해서 key 값을 지정하는 형태라 값이 같은 key 에 대해서만 join, merge 가 가능합니다.
[pandas.DataFrame.join — pandas 1.4.2 documentation](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.join.html)
[pandas.DataFrame.merge — pandas 1.4.2 documentation](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.merge.html)