| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- docker
- scikit-learn
- tauri
- yaml
- RandomAccessFile
- CSS
- Typescript
- curl
- UV
- pandas
- json
- FileChannel
- podman
- vscode
- scaler
- Python
- json schema
- 빌드
- Vite
- vim
- Webpack
- io
- Docker Compose
- 치환
- Ollama
- 최빈값
- PowerShell
- cli
- value_counts
- Java
- Today
- Total
목록Data Science/Pandas (13)
워로디스
Pandas에서 replace()와 map()은 둘 다 값을 다른 값으로 변환할 때 사용하지만, 가장 큰 차이는 매핑되지 않은 값의 처리 방식입니다.1. 핵심 차이구분replace()map()주요 목적특정 값을 다른 값으로 치환기존 값을 새로운 값으로 매핑매핑되지 않은 값원래 값 유지NaN으로 변경딕셔너리 사용가능가능함수(lambda) 사용불가능가능정규표현식지원직접 지원하지 않음주요 사용 대상Series, DataFrameSeries2. 예제로 비교import pandas as pds = pd.Series(['A', 'B', 'C', 'D'])mapping = { 'A': 100, 'B': 200}replace()s.replace(mapping)출력:0 1001 2002 C..
1. 핵심 개념: pandas는 입력 객체에 따라 동작이 달라진다pandas에서 가장 헷갈리기 쉬운 부분 중 하나는 동일한 메서드라도 입력 객체가 Series인지 DataFrame인지에 따라 동작이 달라질 수 있다는 것이다.특히 value_counts(), idxmax(), mode()를 이해하려면 다음 세 가지를 구분해야 한다.입력 객체의 자료형: Series인가, DataFrame인가?반환 객체의 자료형: Series인가, DataFrame인가?반환 객체의 인덱스 구조: 일반 Index인가, MultiIndex인가?이 세 가지를 이해하면 여러 메서드를 연결해서 사용하더라도 결과를 예측하기 쉬워진다.2. value_counts(): 데이터의 등장 횟수를 계산하는 메서드value_counts()는 데이터..
pandas의 groupby()는 데이터 분석에서 정말 자주 쓰이는 기능입니다.핵심은 특정 컬럼을 기준으로 데이터를 그룹으로 묶고, 그룹별로 계산하는 것입니다.실무에서 자주 사용하는 패턴 6가지만 알아도 대부분의 기본적인 집계 작업을 처리할 수 있습니다.0. 예제 데이터아래 데이터를 기준으로 설명하겠습니다.import pandas as pddf = pd.DataFrame({ "region": ["서울", "서울", "부산", "부산", "서울", "부산"], "category": ["식품", "가전", "식품", "가전", "식품", "식품"], "customer": ["A", "B", "A", "C", "B", "D"], "sales": [100, 30..
pandas가 헷갈리는 이유는 비슷한 대괄호 문법이 상황에 따라 다르게 해석되기 때문입니다. 핵심은 df[...]와 .loc[...]의 해석 기준이 서로 다르다는 점입니다.1. df[...]는 안에 들어온 값의 종류에 따라 의미가 달라진다df['Fare']'Fare'는 열 이름이므로 열 선택입니다.df[['Fare', 'Age']]열 이름들의 리스트이므로 역시 열 선택입니다.반면:df[df['Fare'] 먼저df['Fare'] 의 결과는 다음과 같은 Boolean Series입니다.0 True1 True2 False3 True...그리고 pandas는df[boolean_series]형태를 만나면 Boolean 값에 따라 행을 필터링합니다.따라서:df[df['Fare'] 은Fa..
value_counts()는 Pandas에서 범주형 데이터의 분포를 빠르게 확인할 때 가장 자주 쓰는 함수 중 하나입니다. 핵심은 보통 DataFrame 전체보다 특정 컬럼(Series)에 사용하는 경우가 훨씬 많다는 점입니다.1. 가장 기본적인 사용: 값별 개수 세기df['Sex'].value_counts()예:Sexmale 577female 314Name: count, dtype: int64해석:male이 577개female이 314개즉, SQL의 GROUP BY + COUNT()와 비슷한 용도로 생각하면 됩니다.SELECT Sex, COUNT(*)FROM dfGROUP BY Sex;Titanic처럼 범주형 변수가 있는 데이터에서 가장 흔하게 사용합니다.df['Survived'].val..
Pandas에서 최빈값(mode) 은 .mode()으로 구합니다.import pandas as pds = pd.Series([1, 2, 2, 3, 3, 3, 4])s.mode()결과:0 3dtype: int64값만 하나 꺼내려면:s.mode()[0]DataFrame 컬럼에서 구하기df["col"].mode()df["col"].mode()[0]단, 최빈값이 여러 개일 수 있기 때문에 .mode()는 항상 Series 형태로 반환합니다.예:s = pd.Series([1, 1, 2, 2, 3])s.mode()결과:0 11 2dtype: int64빈도수 자체도 확인하려면:df["col"].value_counts()가장 빈도가 높은 값 하나만 필요하다면:df["col"].value_counts()..
1. 입력: 함수에 무엇이 들어오는가Series.apply()df["a"].apply(func)func에는 df["a"]의 값 하나씩 들어온다.def func(x): # x = 개별 값 return ...예:df["a"].apply(lambda x: x * 2)a가 다음과 같다면:102030함수는 개념적으로 다음처럼 호출된다.func(10)func(20)func(30)DataFrame.apply(axis=1)df.apply(func, axis=1)func에는 행 하나씩 들어온다.각 행의 타입은 Series이다.def func(row): # row = 한 행 전체 return ...예:df.apply( lambda row: row["a"] + row["b"], axis=1)..
DataFrameGroupBy 객체는 그대로 출력해도 내부 데이터가 보이지 않습니다.grouped = df.groupby("지역")print(grouped)# 대신 그룹 구조를 볼지, 각 그룹의 실제 데이터를 볼지, 집계 결과를 볼지에 따라 확인 방법을 선택하면 됩니다.1. 그룹 이름과 행 위치 확인: .groupsgrouped.groups예를 들어:{ "부산": Index([2, 3], dtype="int64"), "서울": Index([0, 1], dtype="int64")}각 그룹에 어떤 원본 인덱스가 포함됐는지 확인할 수 있습니다.그룹 키만 보고 싶다면:grouped.groups.keys()list(grouped.groups)2. 각 그룹의 실제 데이터 확인: 반복문가장 확실한 방법입니..
