Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- javascript
- Linux
- pandas
- PER
- flutter
- mssql
- 리눅스
- tensorflow
- port
- IOS
- PyQt
- 함수
- sqlite
- Excel
- GIT
- 다이어트
- 유니티
- swift
- ubuntu
- node.js
- urllib
- 맛집
- ASP
- MS-SQL
- 날짜
- python
- Unity
- PyQt5
- MySQL
- 라즈베리파이
Archives
아미(아름다운미소)
날짜 형식 변환 (YYYY-MM-DD 형식으로) 본문
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)
'랭귀지 > pandas' 카테고리의 다른 글
ES문자열 제거 (0) | 2025.03.13 |
---|---|
splite (0) | 2025.03.13 |
백터화 (0) | 2025.03.11 |
주어진 조건에 따라 각각 100개의 행을 랜덤하게 추출하여 새로운 DataFrame을 만드는 예제 (0) | 2025.03.07 |
데이터프레임의 특정 열을 datetime으로 변환 (0) | 2025.03.04 |
Comments