2024. 2. 27. 16:20ㆍ학습/시각화
[궁금] return값이 없는 함수를 데이터프레임에 적용했을 때, 두 개의 열을 모두 연산하고 남은 None값은 뭘까?
- 각 셀마다 연산식을 적용하고 컬럼 a, b에 대한 return값을 주는 과정이 따로 있나? 라는 궁금함에서 시작된 과정
- 일단 함수로 print 시켰으니 모든 셀을에 적용했지만 a의 return값은 "None"이다.
- 열을 묶음어서 함수에 적용한다.
- 열이라는 주머니에 [10, 20, 30] 리스트가 있고 for문 돌리는 것과 같다.
- 함수를 돌렸으니 return을 반환해야 하는데 없다? 디폴트 값인 None이 출력된다. (추측)
- 그렇다면 함수에 대한 return 값 문자열로 부여하고 결과를 재확인했다.
- 함수에 새로운 변수명을 입력하니 정리가 되었다.
- return의 유무에 대한 차이를 간단하게 확인했다.
- 연산이 필요한 함수와 문자열을 반환하는 함수의 적용 값이 다름을 확인했다.
[해결] 정리하자면 아래와 같다💡
- 숫자형 데이터를 열단위로 연산하고 싶다면 위와 같은 코드를 참고한다.
- 함수에 대한 이해와 데이터프레임에 대한 적용이해가 아직도 부족했음을 배우는 과정이었다.
[상담 기록] 소현 튜터님
df= pd.DataFrame({
'a': [10,120,30,40,50,60],
'b': ['황제성','주현영','문세윤','유재석','강호동','이수근']
})
[참고] 컬럼별 데이터 형식을 지정합니다. int64=숫자, str=문자열
df['a'].astype(int)
df['b'].astype(str)
print(df)
- 컬럼별 데이터 형식을 지정하는 건 나중(실무)을 위해 꼭 필요한 부분이다.
- return 값을 안줬으니 None이 뜨는 것은 부가적인 설명을 해주는 부분이다.
- 이러한 문제는 df2로 새 변수를 주면 None값이 없어진다.
- dataframe은 2차원이므로, [ ]가 두번 필요하다.
- df[df['a']>30] 중요하니 꼭 학습해둔다.
- print 는 결괏값을 확인하는 용도지 가공할 수 없다. 때문에 df.groupby(['']).agg(mean) 이렇게 연습 많이 한다.
- mask는 어떻게 사용하는지
- sql에서 join -> python은 뭔지
- sql에서 concat -> python에서는 뭔지 학습한다.
[상담 결과] masking, join, concat이란 python에서 무엇일까?
- Pandas에서의 Masking이란?
- Pandas의 DataFrame에서 "masking" 개념이 사용된다.
- DataFrame에서 "masking"은 특정 조건을 만족하는 행이나 열을 선택하거나 "제외"하는 작업이다.
- DataFrame의 loc 또는 iloc을 사용하여 조건을 만족하는 데이터를 선택하거나 필터링할 수 있다.
- Python에서 SQL의 Join 구현
- Pandas에서 DataFrame 간의 join 연산을 수행할 수 있다.
- pd.merge() 함수를 사용하여 두 개의 DataFrame을 특정 열(또는 인덱스)을 기준으로 병합할 수 있다.
- 예를 들어, pd.merge(df1, df2, on='key')는 두 개의 DataFrame을 'key' 열을 기준으로 조인한다.
- Python에서 SQL의 Concat 구현
- Pandas에서는 여러 개의 DataFrame을 연결할 때 pd.concat() 함수를 사용한다.
- 이 함수를 사용하여 행 또는 열 방향으로 DataFrame을 연결할 수 있다.
- 예를 들어, pd.concat([df1, df2], axis=0)는 두 개의 DataFrame을 행 방향으로 연결합니다.
둘 다 데이터프레임을 결합시키는 용도라고 한다. 둘의 정확한 구분을 위해 정리해보았다.
- pd.merge():
- merge 함수는 두 개의 DataFrame을 특정 "열"(또는 인덱스)을 기준으로 병합한다.
- 일반적으로 SQL의 JOIN 연산과 유사한 방식으로 작동하며, 특정 "열"의 값을 기준으로 두 DataFrame을 합친다.
- 이 때, 병합하는 방식은 inner join, outer join, left join, right join 등 다양한 방식을 선택할 수 있습니다.
- pd.concat(enate)():
- concat 함수는 여러 개의 DataFrame을 연결하여 하나의 DataFrame으로 결합한다.
- 이 함수는 주어진 축을 따라 여러 DataFrame을 연결합니다. 기본적으로 행 방향(axis=0)으로 연결되지만, 열 방향(axis=1)으로도 연결할 수 있다.
- concat 함수는 데이터를 단순히 연결하기만 하며, 특정 열의 값을 기준으로 조인하는 것이 아니다.
- 따라서 데이터의 구조가 유지되면서 단순히 이어붙이는 용도로 주로 사용된다는 게 가장 큰 차이다.
[left join -> merge() 예시 코드]
left_join_df = pd.merge(left_df, right_df, on='key', how='left')
print(left_join_df)
💡merge는 특정 "열"의 값을 "기준"으로 병합하는 데 사용되며, concat은 여러 개의 DataFrame을 "단순"히 이어붙이는 데 사용된다고 이해하면 되겠다.
'학습 > 시각화' 카테고리의 다른 글
[태블로] 대시보드 설계와 구성 (4주차 복습) (0) | 2024.02.27 |
---|---|
[태블로] 활용한 Superstore 데이터셋 시각화 (0) | 2024.02.27 |
태블로 4주차 : 계산식 활용, 대시보드 만들기 (0) | 2024.02.25 |
태블로 3-2주차 : 박스 플랏(Box Plot) < 이슈 발생, 왜? (1) | 2024.02.25 |
태블로 3-1주차 : airbnb data set 실습 (0) | 2024.02.25 |