출처: https://astrocosmos.tistory.com/202 [ASTROCOSMOS:티스토리] '분류 전체보기' 카테고리의 글 목록 (8 Page) :: 하나둘셋넷
728x90

데이터 전처리 날짜, date, Date]

변경 - timedelta 형식의 시리즈열 데이터 유형을 days로 변경

display(df_competition['진행기간'][0])
display(df_competition['진행기간'][0].days)

df_competition['진행기간'] = df_competition['진행기간'].apply(lambda x: x.days)
df_competition['진행기간']

 

 

lambda 함수를 사용하면 pandas 시리즈의 각 요소에 대해 주어진 함수를 적용

 

변경 - pd.to_datetime

import datetime

# '날짜' 열을 datetime 형식으로 변환
df_participate['일자'] = pd.to_datetime(df_participate['일자'])

# 월별 열 생성
df_participate['월별'] = df_participate['일자'].dt.to_period('M')

df_participate.head()

 

 

조회 - 오늘 날짜 출력

from datetime import datetime
print(datetime.today())
print(datetime.today().strftime("%Y-%m-%d %H:%M:%S"))
print(datetime.today().strftime("%Y-%m-%d"))

 

조회 -  오늘 날짜의 일 단위만 조회

from datetime import datetime

# 오늘 날짜만 조회
today_date = today_date.day
today_date

조회 - timedelta, 2년 전 날짜 조회

from datetime import datetime
from datetime import timedelta
print(datetime.today())
print(datetime.today().strftime("%Y-%m-%d %H:%M:%S"))
print(datetime.today().strftime("%Y-%m-%d"))

two_years_ago = datetime.today() - timedelta(days = 2*365)
print(two_years_ago.strftime("%Y-%m-%d"))

 

조회 - timedelta에서 원하는 요소만 추출

display(df_competition['진행기간'][0])
df_competition['진행기간'][0].days

 

 

변경 - 여러 행에 메서드를 적용 lambda, days

display(df_competition['진행기간'][0])
display(df_competition['진행기간'][0].days)

df_competition['진행기간'] = df_competition['진행기간'].apply(lambda x: x.days)
df_competition['진행기간']

 

728x90
728x90

데이터 전처리 파일 관리]

변경

import pandas as pd

# UTF-8 인코딩으로 파일 읽기
df = pd.read_csv('mymeal_all.csv', encoding='utf-8')

# CP949 인코딩으로 파일 저장
df.to_csv('mymeal_all_cp949.csv', encoding='cp949', index=False)

 

저장 - csv로 저장

# 결과 저장
# result 변수를 인덱스 미포함하여 'result3.csv' 파일로 저장 합니다.
# 저장경로는 현재 경로의 하위 './data' 폴더로 지정해 주세요.

result.to_csv('./data/result3.csv',index=False)

 

 

저장 - 특정 위치에 csv로 저장

import pandas as pd

# 예시 DataFrame 생성
data = {'Column1': [1, 2, 3], 'Column2': [4, 5, 6]}
your_dataframe = pd.DataFrame(data)

# CSV 파일로 저장할 경로
file_path = 'path/to/your/folder/filename.csv'

# DataFrame을 CSV 파일로 저장
your_dataframe.to_csv(file_path, index=False)

 

저장 - Excel로 저장

df.to_excel('example.xlsx', index=False)

 

조회, 확인 - 특정 위치의 파일 목록 확인

import os

# 확인하고 싶은 디렉토리 경로
directory_path = 'your/directory/path'

# 디렉토리 내의 파일과 하위 디렉토리 목록 가져오기
file_list = os.listdir(directory_path)

# 파일 목록 출력
print(file_list)

 

728x90
728x90

데이터 전처리 딕셔너리]

추가, 삽입 - 딕셔너리에 데이터 삽입

딕셔너리에 새로운 키-값 쌍을 추가하는 방법은 다음과 같습니다.

menu_dict[nutrient.capitalize()] = amount


만약 여러 키-값 쌍을 한 번에 추가하려면, update 메소드를 사용할 수 있습니다.

menu_dict.update({new_key1: new_value1, new_key2: new_value2})
728x90

'데이터 - 자료형' 카테고리의 다른 글

데이터 자료형 - 딕셔너리  (0) 2024.01.08
데이터 자료형 리스트  (0) 2024.01.07
728x90

SQL JOIN] 주문량이 많은 아이스크림들 조회하기

https://school.programmers.co.kr/learn/courses/30/lessons/133027

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

-- 코드를 입력하세요
SELECT F.FLAVOR
FROM ( 
    SELECT FLAVOR, TOTAL_ORDER
    FROM FIRST_HALF
    
) F
INNER JOIN JULY J ON F.FLAVOR = J.FLAVOR
GROUP BY F.FLAVOR
ORDER BY (SUM(F.TOTAL_ORDER) + SUM(J.TOTAL_ORDER)) DESC
LIMIT 3

728x90
728x90

SQL GROUP BY] 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기

https://school.programmers.co.kr/learn/courses/30/lessons/151139

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

SELECT G.MONTH, G.CAR_ID, COUNT(G.CAR_ID) AS RECORDS
FROM (
    SELECT CAR_ID, MONTH(START_DATE) AS MONTH
    FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
    WHERE START_DATE BETWEEN '2022-08-01' AND '2022-10-31'
) G
INNER JOIN (
    SELECT CAR_ID
    FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
    WHERE START_DATE BETWEEN '2022-08-01' AND '2022-10-31'
    GROUP BY CAR_ID
    HAVING COUNT(CAR_ID) >= 5
) T ON G.CAR_ID = T.CAR_ID
GROUP BY G.CAR_ID, G.MONTH
ORDER BY G.MONTH, G.CAR_ID DESC;

728x90
728x90

SQL GROUP BY] 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기

https://school.programmers.co.kr/learn/courses/30/lessons/157340

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

SELECT CAR_ID,
       CASE
            # START와 DATE 사이에 최소 2022-10-16이 끼어있다면, 1보다 클 것이고 이 경우에 '대여중'으로 표시한다.
            # 한 번이라도 해당 날짜에 대여중인 상태가 있는지 확인한다.
            WHEN SUM(CASE WHEN '2022-10-16' BETWEEN START_DATE AND END_DATE THEN 1 ELSE 0 END) > 0
            THEN '대여중'
            ELSE '대여 가능' 
        END AS AVAILABILITY
    FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY 
GROUP BY CAR_ID
ORDER BY CAR_ID DESC;
728x90
728x90

KT Aivle School 에이블스쿨 기자단] 12.18(월)~ 12.24(일) 빅프 진행, 산출물 제출, 컨설팅 진행

 

꾸준히 쌓여가는 산출물

 

매주 금요일에는 산출물에 대해 보고서를 제출하고 있다.

 

이번주는 데이터분석, 환경분석서 페이지를 작성하여 제출하는 것이었다.

 

데이터분석의 경우 현재 주제의 모델링 목적, 사용 알고리즘, 모델링 순서 등에 대해 작성하는 내용이었고 환경 분석의 경우에는 고객사, 시장 동향 등의 환경에 대해 작성하는 내용이었다.

 

말로 간단하게 대화를 나눌 때에는 쉽게 생각이 되었지만 글을 직접 작성하는 과정에서 부족한 부분을 찾고 보완할 수 있었던 점이 좋게 느껴졌다.

 

 

12.21(목) 컨설팅 진행

 

 

목요일에는 우리 조가 컨설팅을 진행하는 일자였기 때문에 과제를 진행하면서 중간중간 상담을 진행했고, 나는 3시 15분에 상담을 진행했다.

 

나의 경우 돌아오는 수요일에 면접 일정이 있었기 때문에 원래는 자소서에 대한 상담이 주로 진행되어야 했지만 현재 상황을 말씀을 드림으로써 면접에 대한 상담을 받을 수 있었다.

 

두괄식으로서 표현하는 것과, 1분 자기소개를 할 때 적정 시간과 담아야 할 내용에 대해 배울 수 있었고 예상 인성질문 및 이에 대한 답변의 방향성을 배울 수 있었다.

빅프 진행 중에 도움이 되는 나의 정리본들

 

빅프로젝트를 진행함에 있어서, 빠르게 일을 처리하면서 다음으로 넘어가고 싶은 마음이 있는데 그럴 때마다 내가 현재까지 블로그에 정리해둔 글들이 크게 도움이 되고 있다.

 

두서 없이 짧게 작성된 부분들이 있지만 정말 필요한 내용만 깔끔하게 담겨 있기 때문에 과제 진행에 큰 힘이 되고 있다.

728x90
728x90

SQL SUM, MAX, MIN] 동물 수 구하기 COUNT

728x90
728x90

SQL String, Date] 조건별로 분류하여 주문상태 출력하기

728x90

+ Recent posts