아미(아름다운미소)

날짜 형식 변환 (YYYY-MM-DD 형식으로) 본문

랭귀지/pandas

날짜 형식 변환 (YYYY-MM-DD 형식으로)

유키공 2025. 3. 12. 21:52
chunk_size = 1_000_000  # 청크 크기
result = []

for chunk in np.array_split(df, len(df) // chunk_size):
    chunk['date'] = pd.to_datetime(chunk['date']).dt.strftime('%Y-%m-%d')
    result.append(chunk)

df = pd.concat(result)
df['date'] = pd.to_datetime(df['date'], format='%Y-%m-%d').dt.strftime('%Y-%m-%d')
import numpy as np

# datetime 객체로 변환
df['date'] = pd.to_datetime(df['date'])

# numpy를 사용하여 문자열로 변환
df['date'] = np.datetime_as_string(df['date'], unit='D')  # 'D'는 일 단위
# datetime 객체로 변환
df['date'] = pd.to_datetime(df['date'])

# 문자열로 변환
df['date'] = df['date'].dt.strftime('%Y-%m-%d')
import pandas as pd
import numpy as np
import time

# 400만 개의 랜덤 날짜 생성 (2000년부터 2050년 사이)
n = 4_000_000
dates = pd.to_datetime(np.random.randint(946684800, 2524608000, size=n), unit="s")
df = pd.DataFrame({"date": dates})

# 1. astype(str) 방식 속도 측정
start = time.time()
df1 = df.copy()
df1["date"] = df1["date"].astype(str)
astype_time = time.time() - start

# 2. np.datetime_as_string() 방식 속도 측정
start = time.time()
df2 = df.copy()
df2["date"] = np.datetime_as_string(df2["date"].values, unit="D")
np_datetime_as_string_time = time.time() - start

# 3. dt.strftime() 방식 속도 측정
start = time.time()
df3 = df.copy()
df3["date"] = df3["date"].dt.strftime("%Y-%m-%d")
strftime_time = time.time() - start

# 결과 출력
print(f"astype(str): {astype_time:.4f}초")
print(f"np.datetime_as_string(): {np_datetime_as_string_time:.4f}초")
print(f"dt.strftime(): {strftime_time:.4f}초")
import pandas as pd
import numpy as np
import time

# 400만 개 이상의 날짜 데이터 생성
num_rows = 4_000_000  # 400만 행
start_date = np.datetime64('2023-01-01')  # 시작 날짜

# numpy를 사용하여 날짜 데이터 생성
dates = start_date + np.arange(num_rows) * np.timedelta64(1, 'D')  # 일 단위로 증가

# DataFrame 생성
df = pd.DataFrame({
    'date': dates
})

# 날짜 형식 변환 전 시간 측정
start_time = time.time()

# datetime 객체로 변환
df['date'] = pd.to_datetime(df['date'])

# 문자열로 변환
df['date'] = df['date'].dt.strftime('%Y-%m-%d')
# 날짜 형식 변환 (YYYY-MM-DD 형식으로)
df['date'] = np.datetime_as_string(df['date'], unit='D')  # 'D'는 일 단위
df['date'] = np.datetime_as_string(df['date'].values, unit='D')

# 시간 측정 종료
end_time = time.time()

# 결과 출력
print(f"데이터 변환 시간: {end_time - start_time:.4f} 초")
print(df.head())  # 변환된 데이터 샘플 출력
import pandas as pd

# 샘플 데이터
data = {'date': ['2023-01-01', '2023-02-15', '2023-03-30']}
df = pd.DataFrame(data)

# datetime 객체로 변환
df['date'] = pd.to_datetime(df['date'])

# 날짜 연산 예제 (예: 10일 추가)
df['date_plus_10'] = df['date'] + pd.Timedelta(days=10)

print(df)
Comments