728x90
반응형

 티스토리 

데이터 분석을 위한 판다스와 DASK의 활용하기

안녕하세요, 여러분! 오늘은 데이터 분석에 있어서 아주 중요한 두 라이브러리, PANDAS, DASK를 활용하는 방법에 대해 알아보려고 해요. 이 둘을 잘 사용하면 대용량(big size) 빅데이터 분석이 훨씬 수월해진답니다. 그럼, 간단한 예시를 통해 어떻게 활용하는지 살펴볼까요?

1. 코드리뷰

  먼저, 판다스는 데이터 분석과 조작을 위한 아주 강력한 라이브러리에요. 예를 들어, 다음과 같이 간단한 데이터프레임을 생성할 수 있죠.

import pandas as pd

df1 = pd.DataFrame({'a': [1, 2, 3], 'b': ['4', '5', '6'], 'c': [7.0, 8.0, 9.0]})
df2 = pd.DataFrame({'a': ['1', '2', '4'], 'b': [10, 11, 12], 'd': [13.0, 14.0, 15.0], 'f': ['16', '17', '18'], 'g': [19, 20, 21]})

다음으로, 판다스의 데이터프레임을 DASK의 데이터프레임으로 변환할 수 있어요. 다크는 병렬 계산을 위한 라이브러리로, 큰 데이터를 다룰 때 유용해요.

import dask.dataframe as dd

df1 = dd.from_pandas(df1, npartitions=1)
df2 = dd.from_pandas(df2, npartitions=1)

이제, 두 데이터프레임의 'a' 열의 데이터 타입(dtype)을 문자열(str)로 통일한 뒤, 병합하는 작업을 해볼 거에요. 이렇게 하면 두 데이터프레임의 정보를 통합하여 더 유용한 분석을 할 수 있답니다.

아래 클릭하여 코드를 확인. 

더보기

df1['a'] = df1['a'].astype(str)
df2['a'] = df2['a'].astype(str)

merged_df = df1.merge(df2[['a', 'd']], on='a', how='left')

print(merged_df.compute())

 

반응형

이 예시를 통해 판다스와 DASK의 기본적인 사용법을 간단히 알아봤어요. 데이터 분석의 세계는 정말 넓고, 이 두 라이브러리는 그 세계를 탐험하는 데 있어서 강력한 도구랍니다. 여러분도 이런 도구들을 활용해서 다양한 데이터 분석 프로젝트에 도전해보세요!

2. 코드리뷰

이제 이 예제를 확장하여 두 데이터프레임 간의 다른 유형의 조작을 수행하는 추가 예제를 알아 볼게요.

import pandas as pd
import dask.dataframe as dd

# 새로운 예시 데이터프레임 생성
df3 = pd.DataFrame({'x': [10, 20, 30], 'y': ['a', 'b', 'c'], 'z': [0.1, 0.2, 0.3]})
df4 = pd.DataFrame({'x': [20, 30, 40], 'y': ['b', 'c', 'd'], 'k': [3, 4, 5], 'm': ['x', 'y', 'z']})

# dask 데이터프레임으로 변환
df3 = dd.from_pandas(df3, npartitions=1)
df4 = dd.from_pandas(df4, npartitions=1)

# 'x' 열을 기준으로 df3과 df4를 내부 병합(inner join) 예시
inner_merged_df = df3.merge(df4, on='x', how='inner')

# 'y' 열을 기준으로 df3과 df4를 외부 병합(outer join) 예시
outer_merged_df = df3.merge(df4, on='y', how='outer')

# 결과 확인
print("Inner Merged DataFrame:\n", inner_merged_df.compute())
print("\nOuter Merged DataFrame:\n", outer_merged_df.compute())

추가 리뷰는 아래 클릭하여 확인 해보세요~

더보기

이 예제에서는 두 개의 새로운 데이터프레임 df3과 df4를 생성하고, 'x' 열을 기준으로 내부 병합(inner join)을 수행하며, 'y' 열을 기준으로 외부 병합(outer join)을 수행합니다. 내부 병합은 두 데이터프레임 모두에 존재하는 키(열의 값)에 대해서만 행을 병합하는 반면, 외부 병합은 한쪽 또는 양쪽 데이터프레임에 존재하는 모든 키에 대해 행을 병합하고, 매칭되지 않는 행의 경우 결측값으로 채웁니다.

728x90

 

마무리

- 이번 포스팅은 Pandas / Dask 라이브러 에 대해 알아봤습니다.

CostZeroCode

 
 
 

궁금한 사항은 lution2@gmail.com로 문의사항  주시면 답변 드리겠습니다.
감사합니다.

 

 

728x90
반응형
728x90
반응형

 티스토리 

 

특정 문자열을 포함하는 데이터를 탐색

안녕하세요, 
오늘의 블로그 포스팅에서는 Python의 Pandas 라이브러리를 활용하여 특정 문자열을 포함하는 데이터를 탐색하고 이를 기반으로 새로운 열을 데이터프레임에 추가하는 방법을 알아보겠습니다.

이번 예제에서특정 문자열을 찾아내는 것을 목표로 합니다.

1. 코드리뷰

데이터프레임 준비
먼저, 우리가 작업할 샘플 데이터프레임을 생성해보겠습니다.

데이터프레임에는 날짜(DATE), 선수 이름(PLAYER), 출생년도(Birth), 소속 클럽(TEAM), 그리고 데이터베이스 ID(DB_ID)가 포함됩니다.

import pandas as pd

# 데이터프레임 수정
data = {
    'DATE': ['2023-10-13 0:00:00', '2023-10-14 1:00:00', '2023-10-15 2:00:00', 
             '2024-01-16 3:00:00', '2024-01-17 4:00:00', '2024-01-18 5:00:00', 
             '2024-01-18 6:00:00', '2024-01-18 7:00:00', '2024-01-18 8:00:00'],
    'PLAYER': ['손흥민(Son Heung-min)', '이강인(Lee Kang-in)', '김민재(Kim Min-jae)', 
               '황희찬(Hwang Hee-chan)', '박지성(Park Ji-sung)', '기성용(Ki Sung-yueng)', 
               '차범근(Cha Bum-kun)', '차두리(Cha Du-ri)', '이청용(Lee Chung-yong)'],
    'Birth': ['1992년 7월 8일', '2001년 2월 19일', '1996년 11월 15일', 
              '1996년 1월 26일', '1981년 2월 25일', '1989년 1월 24일', 
              '1953년 5월 22일', '1980년 7월 25일', '1988년 7월 2일'],
    'TEAM': ['Tottenham Hotspur', 'PSG', 'FC Bayern Munich', 
               'Wolverhampton Wanderers FC', 'Manchester United', 'THE CELTIC FC', 
               '프랑크푸르트', '프랑크푸르트', '볼턴 원더러스'],
    'DB_ID': ['CI13/JO_DATA/TZ10', 'CI07/JO_DATA/TZ10', 'CI13//TZ10', 
              'SI_DATA/TZ10', 'CI3/JO_DATA/TZ12', 'CI13/JO_DATA', 
              'CI13/SI_DATA/TZ10', 'CI77/JO_DATA/TZ10', 'SI_DATA/TZ10']
}
df = pd.DataFrame(data)
df.to_csv('result.csv') # 결과 저장

특정 문자열 탐색 및 새 열 추가

이제 'DB_ID' 열에서 'JO_DATA' 문자열을 포함하는 행을 찾아, 이 정보를 바탕으로 새로운 열 'CHECK_ID'에 'JO_DATA'를 저장하는 작업을 진행하겠습니다. 이를 위해 apply 함수와 람다(lambda) 표현식을 사용합니다.

df.apply() 메소드 와 람다(lambda)는 아래에 다시 자세히 설명 하겠습니다.

df['CHECK_ID'] = df['PLACE'].apply(lambda x: 'JO_DATA' if 'JO_DATA' in x else None)

결과 (output) : CHECK_ID 열에 DB_ID 값 JO_DATA가 있으면 저장한 결과

 

2. apply 함수와 람다(lambda) 표현식

DataFrame.apply() 메소드는 판다스(Pandas)에서 데이터프레임의 열이나 행에 함수를 적용할 때 사용합니다. 
이 메소드는 데이터프레임의 각 열이나 행에 대해 지정된 함수를 적용하고 결과를 데이터프레임 또는 시리즈로 반환합니다.
 axis 매개변수를 통해 함수가 적용되는 축을 지정할 수 있으며, axis=0은 열에 함수를 적용하고, axis=1은 행에 함수를 적용합니다.

예제 1: 열의 최대값과 최소값의 차이 계산

import pandas as pd

df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})

def max_min_diff(x):
    return x.max() - x.min()

result = df.apply(max_min_diff)
print(result)

결과 : 

A    2
B    2
C    2

예제 2: 행별로 최대값 찾기

import pandas as pd

df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})

result = df.apply(max, axis=1)
print(result)

결과 :

0    7
1    8
2    9

예제 3: 데이터프레임의 각 열에 대해 데이터 유형 변환

import pandas as pd

df = pd.DataFrame({'A': [1, 2, 3], 'B': ['4', '5', '6'], 'C': [0.1, 0.2, 0.3]})

def convert_dtype(x):
    if x.dtype == 'float64':
        return x.astype('int64')
    return x

result = df.apply(convert_dtype)
print(result)

결과 :

   A  B  C
0  1  4  0
1  2  5  0
2  3  6  0

이 예제들은 apply() 메소드의 다양한 사용 방법을 보여줍니다. 첫 번째 예제는 각 열의 최대값과 최소값의 차이를 계산합니다. 두 번째 예제는 각 행의 최대값을 찾습니다. 세 번째 예제에서는 데이터프레임의 각 열의 데이터 유형을 조건에 따라 변환합니다.

파이썬의 lambda 함수는 작은 익명 함수를 정의하는 데 사용됩니다. lambda 함수는 여러 인자를 받을 수 있지만, 표현식은 하나만 가질 수 있으며, 그 표현식의 계산 결과가 반환됩니다. lambda 함수는 일반적으로 함수를 인자로 받는 고차 함수에서 사용되거나, 짧은 함수가 필요한 곳에 쓰이는 경우가 많습니다. 기본 형식은 다음과 같습니다.

lambda arguments: expression

예제 1: 두 수를 더하는 lambda 함수

add = lambda x, y: x + y
print(add(5, 3))

예제 2: 리스트의 각 요소에 제곱을 적용

numbers = [1, 2, 3, 4]
squared = list(map(lambda x: x ** 2, numbers))
print(squared)

예제 3: 리스트에서 홀수만 필터링

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]
odds = list(filter(lambda x: x % 2 != 0, numbers))
print(odds)

이 예제들은 lambda 함수의 다양한 사용 방법을 보여줍니다. 첫 번째 예제는 두 수를 더하는 간단한 lambda 함수를 정의합니다. 두 번째 예제에서는 map() 함수와 lambda를 결합하여 리스트의 각 요소에 제곱을 적용합니다. 세 번째 예제에서는 filter() 함수와 lambda를 사용하여 리스트에서 홀수만을 필터링합니다.

마무리

- 이번 포스팅은 판다스 조건별 탐색 및 apply() 메소드 및 lambda에 대해 알아봤습니다.

 

궁금한 사항은 댓글을 통해서 남겨 주시면 답변 드리겠습니다.
감사합니다.

 

 

728x90
반응형
728x90
반응형

안녕하세요, 파이썬 개발자 여러분! 파이썬의 매력적인 세계에 오신 것을 환영합니다. 이 블로그 글에서는 파이썬 프로그래밍의 다양한 측면을 탐구하고, 혁신적인 아이디어와 유용한 도구를 소개합니다. 함께 파이썬의 무한한 가능성을 발견하며 세계를 개척해봅시다!

 

파이썬의 매력과 장점: 파이썬은 왜 많은 개발자들에게 인기를 끌까요? 이 글에서는 파이썬의 매력과 장점을 탐구합니다. 간결한 문법, 다양한 라이브러리, 그리고 커뮤니티의 활발한 지지와 같은 파이썬의 강점을 살펴보면서, 왜 파이썬이 현대 개발의 황금시대를 이끌고 있는지 알아봅시다.

파이썬은 배우기 쉽고 사용하기 편리한 프로그래밍 언어로서 많은 장점을 가지고 있습니다.

1. 배우기 쉽고 사용하기 편리

파이썬은 다른 프로그래밍 언어에 비해 문법이 간결하고 명확하며, 영어와 비슷한 문법 구조를 가지고 있어 초보자도 비교적 쉽게 배우고 이해할 수 있습니다. 또한, 들여쓰기 기반의 코드 스타일을 사용하여 코드를 깔끔하고 보기 쉽게 작성할 수 있습니다.

2. 다양한 활용 분야

파이썬은 웹 개발, 데이터 분석, 인공지능, 머신러닝, 과학 계산, 게임 개발 등 다양한 분야에서 활용될 수 있는 다목적 프로그래밍 언어입니다.

3. 풍부한 라이브러리

파이썬은 다양한 분야에 특화된 풍부한 라이브러리를 제공합니다. 웹 개발을 위한 Django, Flask, 데이터 분석을 위한 NumPy, Pandas, 인공지능 및 머신러닝을 위한 TensorFlow, PyTorch 등 다양한 라이브러리를 활용하여 개발 시간을 단축하고 효율적으로 작업할 수 있습니다.

4. 활발한 커뮤니티

파이썬은 전 세계적으로 활발한 사용자 커뮤니티를 가지고 있습니다. 온라인 커뮤니티, 포럼, 블로그 등을 통해 다양한 정보와 도움을 얻을 수 있으며, 다른 개발자들과 협력하고 지식을 공유할 수 있습니다.

5. 오픈 소스

파이썬은 오픈 소스 언어이기 때문에 누구나 무료로 사용하고 배포할 수 있습니다. 또한, 다양한 개발 도구와 IDE가 무료로 제공되어 개발 환경을 쉽게 구축할 수 있습니다.

6. 빠른 개발 속도

파이썬은 빠른 개발 속도를 제공하는 프로그래밍 언어입니다. 간결한 문법과 풍부한 라이브러리를 활용하여 빠르게 프로토타입을 제작하고, 코드를 작성하고 테스트할 수 있습니다.

7. 높은 수요

파이썬은 다양한 분야에서 활용될 수 있는 유용한 프로그래밍 언어이기 때문에, 파이썬 개발자에 대한 수요가 높습니다.

결론

파이썬은 배우기 쉽고 사용하기 편리하며, 다양한 분야에서 활용될 수 있는 매력적인 프로그래밍 언어입니다. 풍부한 라이브러리, 활발한 커뮤니티, 오픈 소스 특성 등 다양한 장점을 가지고 있어 많은 개발자들에게 사랑받고 있습니다.

 

파이썬 프로젝트 아이디어: 이 글에서는 파이썬으로 할 수 있는 다양한 프로젝트 아이디어를 소개합니다. 데이터 분석, 웹 개발, 인공지능, 자동화 등 다양한 분야에서 파이썬의 힘을 발휘할 수 있습니다. 여러분의 창의력을 불러일으키는 아이디어를 공유하고, 파이썬으로 세계를 개척하는 프로젝트에 도전해보세요.

파이썬은 다양한 분야에서 활용될 수 있는 프로그래밍 언어이기 때문에, 할 수 있는 프로젝트의 종류도 매우 다양합니다.

초보자

간단한 게임 만들기 (숫자 맞추기, 가위바위보 등)
파일 정리 프로그램 만들기
간단한 웹 서버 만들기
명령행 도구 만들기
데이터 시각화

중급


웹 애플리케이션 만들기 (Django, Flask 등)
데이터 분석 프로젝트 (NumPy, Pandas 등)
머신러닝 모델 만들기 (scikit-learn, TensorFlow 등)
크롤링 프로그램 만들기
네트워크 프로그래밍

고급


인공지능 프로젝트 (OpenAI Gym, PyTorch 등)
모바일 앱 개발 (Kivy 등)
데스크탑 애플리케이션 개발 (Tkinter, PyQt 등)
게임 개발 (PyGame 등)
블록체인 개발

취미


자동화 프로그램 만들기
스크립트 작성
데이터 분석
웹 스크랩핑
챗봇 만들기
기타

오픈 소스 프로젝트 기여
블로그 작성
강의 제작
프로젝트 아이디어를 찾는 방법

관심 분야에 대한 프로젝트를 찾아보세요.
온라인 커뮤니티나 포럼에서 다른 사람들의 프로젝트를 참고하세요.
데이터 분석 경진대회에 참여해보세요.
오픈 소스 프로젝트에 기여해보세요.
스스로 문제를 정의하고 해결하는 프로젝트를 진행해보세요.
프로젝트를 시작하기 위한 팁

쉬운 프로젝트부터 시작하여 점차 난이도를 높여나가세요.
목표를 명확하게 설정하고 계획을 세워 진행하세요.
온라인 자료나 커뮤니티를 활용하여 도움을 받으세요.
꾸준히 노력하고 포기하지 않으세요.
파이썬으로 다양한 프로젝트를 만들면서 프로그래밍 실력을 향상시키고 새로운 기술을 배우고, 창의력을 발휘할 수 있습니다.

인기 있는 파이썬 라이브러리와 도구:

웹 개발

Django: 웹 프레임워크
Flask: 마이크로 웹 프레임워크
FastAPI: 고성능 웹 프레임워크
Pyramid: 웹 프레임워크
TurboGears: 웹 프레임워크

데이터 분석

NumPy: 과학 계산용 라이브러리
Pandas: 데이터 분석 및 조작용 라이브러리
Matplotlib: 데이터 시각화용 라이브러리
Seaborn: Matplotlib 기반 데이터 시각화용 라이브러리
Bokeh: 대화형 데이터 시각화용 라이브러리

머신러닝 및 인공지능


scikit-learn: 머신러닝 알고리즘 라이브러리
TensorFlow: 딥러닝 프레임워크
PyTorch: 딥러닝 프레임워크
Keras: TensorFlow 및 PyTorch를 위한 고수준 API
scikit-image: 이미지 처리용 라이브러리

기타


Requests: HTTP 요청 라이브러리
BeautifulSoup: 웹 스크랩핑용 라이브러리
Selenium: 웹 자동화용 라이브러리
Twisted: 네트워킹 프레임워크
PyQt: GUI 프레임워크

 도구


PyCharm: 통합 개발 환경 (IDE)
Jupyter Notebook: 코드 실행 및 결과 확인을 위한 인터페이스
Spyder: 과학 계산 및 데이터 분석용 IDE
Visual Studio Code: 코드 편집기
Sublime Text: 코드 편집기
위에 언급된 라이브러리와 도구는 일부에 불과합니다.

프로젝트에 필요한 라이브러리와 도구를 선택할 때는 다음과 같은 사항을 고려해야 합니다.

프로젝트의 특성
개인의 선호도
커뮤니티 지원
문서화
다양한 라이브러리와 도구를 활용하여 파이썬 개발을 더욱 효율적으로 수행할 수 있습니다.

파이썬 커뮤니티와 학습 자료: 파이썬 커뮤니티는 지식 공유와 상호 도움을 위한 아름다운 장소입니다. 이 글에서는 파이썬 커뮤니티와 다양한 학습 자료를 소개합니다. 파이썬 개발자들과 교류하고, 온라인 강의, 튜토리얼, 문서 등을 통해 파이썬의 심층적인 이해와 능숙한 활용을 위한 지식을 쌓아봅시다.

파이썬은 전 세계적으로 활발한 사용자 커뮤니티를 가지고 있으며, 다양한 학습 자료가 제공됩니다.

커뮤니티

공식 사이트: https://www.python.org/
Python 한국 사용자 그룹: <유효하지 않은 URL 삭제됨>
PyCon Korea: <유효하지 않은 URL 삭제됨>
스택오버플로: https://stackoverflow.com/questions/tagged/python
레딧: https://www.reddit.com/r/Python/
GitHub: https://github.com/topics/python
학습 자료

튜토리얼:
https://docs.python.org/3/tutorial/
https://www.learnpython.org/
https://www.codecademy.com/learn/learn-python



처음부터 완벽하게 이해하려고 하기보다는, 작은 예제를 통해 꾸준히 연습하는 것이 중요합니다.
궁금한 점은 커뮤니티에 질문하여 도움을 받을 수 있습니다.
다양한 프로젝트를 만들어 실력을 향상시키세요.
파이썬은 배우기 쉽고 사용하기 편리하며, 다양한 분야에서 활용될 수 있는 매력적인 프로그래밍 언어입니다. 활발한 커뮤니티와 풍부한 학습 자료를 활용하여 파이썬을 능숙하게 활용하세요.

파이썬의 미래와 발전 방향: 파이썬은 계속해서 발전하고 혁신을 이끌어내고 있습니다. 이 글에서는 파이썬의 미래와 발전 방향을 살펴봅니다. 인공지능, 데이터 과학, 웹 개발 등 파이썬이 점점 더 중요한 역할을 맡게 되는 분야와 기술을 탐구하면서 파이썬의 무한한 잠재력을 엿볼 수 있습니다.

이 블로그 글을 통해 파이썬의 매력과 능력을 다시 한 번 확인하고, 파이썬 개발자로서의 여정을 함께 나누어봅시다. 함께 파이썬으로 세계를 개척해나가는 황금시대에 동참해보세요!

728x90
반응형

+ Recent posts