일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 신뢰구간
- Recursive
- append
- 재퀴쿼리
- floor
- limit
- 프로그래머스
- pivot table
- dateofmonth
- rrule
- calesce
- datediff
- 표본
- 정규분포
- 표준오차
- curdate
- 모집단
- DATE_FORMAT
- truncate
- 날짜함수
- 데이터 리터러시
- 표분편차
- 재귀쿼리
- 표본분포
- concat
- join
- lambda
- split
- merge
- python
- Today
- Total
hyezdata 님의 블로그
실습으로 익히는 python 4회차 본문
복습
merge
만약 내가 inner join을 잘 했는지 확인하고 싶을 때
inner join을 했으니까 df3인 '3294'보다 개수가 작거나 같아야 한다.
그래서 merge_df를 실행해서 맨 밑에 있는 행과 열 개수를 확인해주면 된다!
3294보다 작은 2999이므로 오케이!
지금 여기서 merge는 함수가 아닌 메서드 형태!
join
join이 가지고 있는 특징 중 하나, 인덱스를 기준으로 join을 한다고 했는데
join과 merge 둘 다 똑같이 수평결합이지만,
위에 merge는 똑같은 컬럼, 공통 컬럼을 가지고 조인을 한거고, join은 번호(인덱스)끼리 결합한 것 (그래서 잘 사용 안 함)
강제로 붙인다고 생각
split
코드를 쪼개서 설명해보면
df2["명수{}".format(i)]
df2에 명수0, 명수1, · · · , 명수6 이라는 컬럼을 붙여줘서 값을 받을 거임
df2['x'].apply(lambda x:
df2 에 있는 'x'라는 컬럼에 람다를 적용할 거임
x.split('.')[i]
함수는 'x' 라는 컬럼을 '.'으로 나누고 [i]로 나눈 거
if len(x.split('.'))>i else None)
만약 x.split('.') 길이가 i보다 클 때
즉,
df2["명수{}".format(i)] = df2['x'].apply(lambda x: x.split('.')[i] if len(x.split('.'))>i else None)
df2 에 있는 'x'라는 컬럼에 함수를 적용할건데 len(x.split('.'))>i 이 조건에 만족하면 x.split('.')[i] 라는 결과 값을 df2["명수{}".format(i)]에 넣어라
(안 만족하면 None)
이걸 inline if 라고 하는데
# inline if
결과값(조건 만족할 때) if 조건 조건안만족할때
rrule
데이터 타입이 문자열로 된 날짜 컬럼이 있다.
근데 날짜 형식을 다르게 바꾸고 싶음
df3['Time stamp2'] =
df3['Time stamp2']라는 새로운 컬럼에
pd.to_datetime(
pandas에 있는 문자열을 date형식으로 바꿔주는 함수 사용
df3['Time stamp'], dayfirst=True
df3['Time stamp'] 을 바꿔줄건데 자동으로 dayfirst로 바꿔 줘
.dt.strftime('%Y-%m-%d')
그리고 다시 날짜로 바꿔 줘 근데 날짜 형식을 내 맘대로
df3 결과를 보면
내가 원하는 날짜를 데이터 프레임에 적용한 다음 슬라이싱해서 보고싶은 자료만 보려면
마스크 메서드 사용
'a'에 들어있으면 조건을 마스크로 선언
'a'는 이거임
그래서 df3[mask] 결과는
'내일배움캠프 > 파이썬' 카테고리의 다른 글
실습으로 익히는 python 5회차, 6회차 (0) | 2025.03.19 |
---|---|
실습으로 익히는 python 3회차 (1) | 2025.03.14 |
실습으로 익히는 python 2회차 (0) | 2025.03.13 |
실습으로 익히는 python 1회차 (0) | 2025.03.11 |
데이터 분석 파이썬 5주차 (2) (0) | 2025.03.10 |