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
- urllib
- node.js
- pandas
- Unity
- PyQt5
- Linux
- sqlite
- 라즈베리파이
- Excel
- 맛집
- python
- ASP
- 리눅스
- MS-SQL
- GIT
- 유니티
- IOS
- 다이어트
- tensorflow
- mssql
- PyQt
- ubuntu
- 함수
- MySQL
- javascript
- PER
- 날짜
- swift
- port
- flutter
Archives
아미(아름다운미소)
splite 본문
import pandas as pd
import numpy as np
# 데이터 생성 함수
def generate_string():
# '::'로 구분된 6개의 랜덤 문자열 생성 (최소 5개의 '::' 포함)
parts = [f"part{i}" for i in range(6)] # 6개의 부분 문자열 생성
return "::".join(parts) # '::'로 연결
# 400만 개의 데이터 생성
num_rows = 4_000_000 # 400만 행
data = {'a': [generate_string() for _ in range(num_rows)]}
# DataFrame 생성
df = pd.DataFrame(data)
# 결과 확인
print(df.head())
chunk_size = 1_000_000 # 청크 크기
result = []
for i in range(0, len(df), chunk_size):
chunk = df.iloc[i:i + chunk_size]
chunk['split_result'] = chunk['a'].str.split('::').str[4]
result.append(chunk)
df = pd.concat(result)
print(df)
import numpy as np
# numpy 배열로 변환
array_data = df['a'].to_numpy()
# numpy 벡터화된 연산
split_result = np.array([x.split('::')[4] if '::' in x else None for x in array_data])
# 결과를 DataFrame에 추가
df['split_result'] = split_result
print(df)
import numpy as np
# Pandas Series를 NumPy 배열로 변환
data = df['a'].astype(str).to_numpy() # 모든 데이터를 문자열로 변환
# 문자열 분할 및 4번째 요소 추출
split_data = np.char.split(data, sep='::') # NumPy의 벡터화된 split 함수
# 4번째 요소 추출 (리스트 길이 확인 후 안전하게 처리)
df['4th_element'] = [
item[3] if len(item) > 3 else None for item in split_data
]
# 문자열이 아닌 데이터는 None으로 처리
split_array = np.array([x.split('_') if isinstance(x, str) else None for x in np_array])
import numpy as np
# numpy 배열로 변환 후 분할
np_array = df['col'].values
split_array = np.array([x.split('_') for x in np_array])
import pandas as pd
import numpy as np
# 예제 데이터 (NaN 포함)
data = {'a': ['A::B::C::D::E', 'F::G::H::I::J', np.nan, 'K::L::M::N::O', 123.45]}
df = pd.DataFrame(data)
# 방법 1: float 타입 데이터를 문자열로 변환
df['a'] = df['a'].astype(str)
result = [x.split('::')[4] if '::' in x else None for x in df['a']]
print(result)
'랭귀지 > pandas' 카테고리의 다른 글
ES문자열 제거 (0) | 2025.03.13 |
---|---|
날짜 형식 변환 (YYYY-MM-DD 형식으로) (0) | 2025.03.12 |
백터화 (0) | 2025.03.11 |
주어진 조건에 따라 각각 100개의 행을 랜덤하게 추출하여 새로운 DataFrame을 만드는 예제 (0) | 2025.03.07 |
데이터프레임의 특정 열을 datetime으로 변환 (0) | 2025.03.04 |
Comments