일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- GIT
- 다이어트
- Unity
- PyQt
- mssql
- python
- sqlite
- 맛집
- PER
- urllib
- PyQt5
- ubuntu
- tensorflow
- swift
- pandas
- 리눅스
- 유니티
- port
- node.js
- javascript
- Linux
- MS-SQL
- IOS
- flutter
- 날짜
- ASP
- MySQL
- Excel
- 함수
- 라즈베리파이
목록랭귀지/pandas (109)
아미(아름다운미소)
# 원본 merge 코드df_merge = df2.merge(df3, how='left', left_on='a', right_on='b').set_index('d')# join으로 변환한 코드df_join = ( df2.set_index('a') # left_on='a' → 인덱스 .join(df3.set_index('b'), # right_on='b' → 인덱스 how='left') .reset_index() # 인덱스(a)를 컬럼으로 복원 .set_index('d') # 최종 인덱스 설정)# 결과 비교print(df_merge.equals(df_join)) # True여야 일치# 원본 merge 결과와 100% ..
data = {'a': ['hello', np.nan, 'nan', None]} # 'nan'은 문자열df = pd.DataFrame(data)array = np.where(pd.isna(df['a'].to_numpy()), '', df['a'].to_numpy())# 결과: ['hello', '', 'nan', '']import pandas as pdimport numpy as np# 샘플 데이터 생성data = {'a': [1, np.nan, 3, np.nan, 5], 'b': [np.nan, 2, np.nan, 4, np.nan]}df = pd.DataFrame(data)# 성능 개선된 처리array = df['a'].to_numpy() # dtype=object 제거 (float64로 자동 변..
극한의 성능 필요시# 리스트 컴프리헨션 + 딕셔너리 생성def fast_concat(df_list, target_cols): return pd.DataFrame( {col: pd.concat([df[col] for df in df_list if col in df], ignore_index=True) for col in target_cols} )final_result = fast_concat([df1, df2], list_columns)### 방법 1: `reindex` 사용import pandas as pd# 예시 데이터프레임들df1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})df2 = pd...
import pandas as pdimport numpy as np# 샘플 DataFrame 생성data = { 'A': [11111, 22222, 11111, 33333, 44444], 'B': ['@', '', '@', '', '']}df = pd.DataFrame(data)# 결과를 저장할 새로운 열 'C' 생성df['C'] = np.where(df['B'] == '@', df['A'].shift(), df['A'])# DataFrame 출력print(df) import pandas as pd# 예시 데이터프레임 생성data = {'column': ['11111@111', '22222', '33333@333', '44444']}df = pd.DataFrame(data)# @ 기준으로 앞..
import pandas as pdimport redef last_number(x): if pd.isna(x): # NaN 확인 return '' match = re.search(r'(? import pandas as pd# 예시 데이터프레임 생성df2 = pd.DataFrame({'bbb': ['abc-123', 'def-456', 'ghi', 'jkl-789', None]})# 벡터화된 연산으로 처리df = pd.DataFrame()df['aaa'] = df2['bbb'].str.extract(r'(?
import pandas as pdimport numpy as npimport time# 테스트 데이터 생성 (400만 건)n_rows = 4_000_000df = pd.DataFrame({ 'y_col': [f'text_{i}' for i in range(n_rows - 2)] + ['no_underscore', None]})# 결과를 저장할 DataFrame 생성result_df = df.copy()# 방법 1: str.split + 열 할당start_time = time.time()debris = result_df['y_col'].str.split('_', expand=True)result_df['a_split'] = debris[0]result_df['b_split'] = debris[1]e..
import pandas as pd# CSV 파일 로드df1 = pd.read_csv('file1.csv')df2 = pd.read_csv('file2.csv')# 두 데이터프레임 비교comparison = df1.compare(df2)# 다른 값 출력print(comparison)
import pandas as pdimport numpy as np# 테스트 데이터data = {'a': ['TESTES', 'EXAMPLE', 'YESES', 'NO', pd.NA, 12345]}df = pd.DataFrame(data)# 벡터화된 연산으로 'ES' 제거 및 결측값 처리df['a_cleaned'] = np.where( df['a'].notna(), # 결측값이 아닌 경우에만 처리 df['a'].astype(str).str.replace(r'ES$', '', regex=True), # ES 제거 '' # 결측값은 빈 문자열로 처리)print(df)import numpy as npimport pandas as pd# 예시 데이터프레임 생성df = pd.DataFrame..
import pandas as pdimport numpy as np# 예시 데이터프레임 생성data = {'a': ['foo_bar', 'hello_world', 'example']} # 'example'에는 _가 없음df = pd.DataFrame(data)# numpy 배열로 변환arr = df['a'].to_numpy()# 분할 결과의 길이를 동일하게 맞추기split_list = [x.split('_') if '_' in x else [x, np.nan] for x in arr] # _가 없으면 [원본, NaN]split_arr = np.array(split_list, dtype=object) # 2차원 배열로 변환 (dtype=object로 설정)# 분할된 결과를 새로운 열로 추가df['aa..
import pandas as pdimport numpy as np# 예시 데이터 (날짜 + NaN 혼합)data = ['2023-01-01', np.nan, 'invalid_date', '2023-02-01']s = pd.Series(data)# 1. 먼저 날짜로 변환 (변환 불가능한 값은 NaT로 처리)datetime_series = pd.to_datetime(s, errors='coerce')# 2. NaT인 경우 NaN으로 대체 (또는 원하는 값으로 처리)result = np.where( pd.isna(datetime_series), np.nan, # 또는 '' / 'N/A' 등 np.datetime_as_string(datetime_series, unit='D') # YYYY..