본문 바로가기
python 파이썬

[python] pandas 의 핵심 기능과 알고리즘, 기여자, 연혁

2024. 7. 17.
 
 
ChatGPT

 

Pandas의 핵심 기능

  1. 데이터프레임 및 시리즈
    • DataFrame: 2차원 데이터 구조로, 행과 열로 구성된 테이블 형태의 데이터를 다룹니다.
    • Series: 1차원 배열과 유사한 데이터 구조로, 한 열의 데이터를 다룹니다.
  2. 데이터 로딩 및 저장
    • 다양한 파일 포맷(CSV, Excel, SQL, JSON, Parquet 등)에서 데이터를 읽고 쓸 수 있습니다.
    • read_csv, read_excel, to_csv, to_excel 등의 메소드 제공.
  3. 데이터 정제 및 변형
    • 결측값 처리(fillna, dropna).
    • 데이터 변환(apply, map).
    • 중복 데이터 제거(drop_duplicates).
  4. 데이터 선택 및 필터링
    • 인덱싱 및 슬라이싱(loc, iloc).
    • 조건에 따른 데이터 선택.
  5. 그룹화 및 집계
    • 데이터 그룹화(groupby).
    • 집계 함수(mean, sum, count, agg).
  6. 병합 및 조인
    • 여러 데이터프레임 병합(merge, join, concat).
  7. 데이터 시각화
    • 데이터프레임에서 직접 플롯 생성 (plot 메소드).
  8. 시간 시리즈 데이터 처리
    • 시간 기반 인덱싱, 리샘플링(resample), 시프트(shift), 이동 평균(rolling).

 

Pandas의 핵심 알고리즘

  1. 인덱싱 및 슬라이싱
    • 고속 인덱싱을 위한 해시 테이블 사용.
    • 슬라이싱과 인덱싱 연산의 최적화.
  2. 그룹화 알고리즘
    • 해시 기반의 그룹화 연산을 통해 빠른 집계 제공.
    • 여러 그룹화 및 집계 연산을 효율적으로 수행하기 위한 내부 최적화.
  3. 병합 알고리즘
    • 해시 기반의 조인 연산.
    • 다양한 조인 방식(내부, 외부, 좌측, 우측)을 지원하는 병합 알고리즘.
  4. 데이터 변형 알고리즘
    • 벡터화 연산을 통한 빠른 데이터 변형.
    • 누락된 데이터 처리와 변형을 위한 최적화 알고리즘.

 

Pandas의 주요 기여자

Pandas는 많은 기여자들의 협력으로 발전해왔습니다. 주요 기여자들은 다음과 같습니다:

  1. Wes McKinney
    • Pandas의 창시자이자 최초 개발자.
    • Pandas의 핵심 구조와 많은 기능을 설계.
  2. Jeff Reback
    • Pandas의 현재 핵심 개발자 중 한 명.
    • 많은 기능 개선과 버그 수정에 기여.
  3. Phillip Cloud
    • Pandas의 성능 향상과 다양한 기능 추가에 기여.
  4. Joris Van den Bossche
    • Pandas의 데이터 분석 기능 강화와 문서화 작업에 기여.
  5. Tom Augspurger
    • Pandas의 성능 최적화와 병렬 처리 기능에 기여.
  6. Marc Garcia
    • Pandas의 데이터 구조 개선과 코드 최적화에 기여.

 

Pandas의 발전과 커뮤니티

Pandas는 오픈 소스 프로젝트로서, GitHub를 통해 개발되고 있으며, 전 세계 많은 개발자와 데이터 과학자들의 기여로 꾸준히 발전해왔습니다. 다양한 기능 추가, 성능 최적화, 버그 수정 등이 활발하게 이루어지고 있으며, Pandas의 사용자는 매년 증가하고 있습니다. Pandas 커뮤니티는 사용자의 피드백과 기여를 환영하며, 이를 통해 더욱 강력하고 유용한 데이터 분석 도구로 발전하고 있습니다.

 
 

 

 

 

 

pandas 연혁
 

 

ChatGPT

Pandas는 데이터 분석 및 데이터 처리 도구로, Python 프로그래밍 언어를 사용하여 개발되었습니다. 다음은 Pandas의 주요 연혁입니다:

Pandas 연혁

2008년

  • 창시: Pandas는 Wes McKinney에 의해 AQR Capital Management에서 처음 개발되었습니다. 그는 금융 데이터 분석의 필요성을 느끼고, R의 데이터 프레임 구조에서 영감을 받아 Pandas를 만들기 시작했습니다.

2009년

  • 초기 릴리즈: Pandas의 초기 버전이 개발되고 내부적으로 사용되기 시작했습니다.

2010년

  • 오픈 소스화: Wes McKinney는 Pandas를 오픈 소스로 공개하여 GitHub에서 사용할 수 있게 했습니다. 이를 통해 커뮤니티의 기여를 받을 수 있게 되었습니다.

2012년

  • v0.8.0 릴리즈: 첫 번째 주요 릴리즈로, 많은 기능과 성능 개선이 포함되었습니다. 이 버전부터 Pandas는 데이터 분석 커뮤니티에서 점점 인기를 끌기 시작했습니다.
  • PyData 컨퍼런스: Pandas는 PyData 컨퍼런스에서 널리 알려지기 시작했습니다. Wes McKinney는 PyData 커뮤니티에서 Pandas의 중요성과 사용법을 강조했습니다.

2013년

  • v0.12.0 릴리즈: Pandas의 기능이 더욱 확장되었으며, 사용자 기반이 더욱 커졌습니다. 이 시점에서 많은 데이터 과학자와 분석가들이 Pandas를 주요 도구로 사용하기 시작했습니다.

2014년

  • Wes McKinney의 이직: Wes McKinney는 Cloudera로 이직하면서 Pandas 개발에서 물러났지만, 프로젝트는 여전히 많은 기여자들에 의해 활발하게 유지되었습니다.

2015년

  • v0.16.0 릴리즈: 새로운 기능과 성능 개선이 포함된 주요 릴리즈가 발표되었습니다.

2018년

  • v0.23.0 릴리즈: 많은 새로운 기능, 성능 향상 및 버그 수정이 포함된 릴리즈. 이 버전은 더욱 강력한 데이터 처리 및 분석 도구로 발전되었습니다.

2020년

  • v1.0.0 릴리즈: Pandas는 드디어 1.0 버전에 도달했습니다. 이는 안정성과 성능, 기능 면에서 성숙한 라이브러리임을 의미합니다.

2021년

  • v1.3.0 릴리즈: 추가적인 기능 향상과 최적화가 포함된 최신 버전이 발표되었습니다. 이 버전에서는 멀티인덱스 및 병합 연산의 성능이 개선되었습니다.

2022년

  • Wes McKinney의 컴백: Wes McKinney는 Ursa Labs를 설립하고, Pandas의 성능 향상을 위해 Arrow 프로젝트와 협력하기 시작했습니다.

Pandas의 미래

Pandas는 현재도 활발히 개발 중이며, 많은 기여자들이 새로운 기능을 추가하고 성능을 향상시키기 위해 노력하고 있습니다. 특히, 대용량 데이터 처리와 병렬 처리를 위한 기능이 계속해서 개선되고 있으며, Arrow 프로젝트와의 협력을 통해 더욱 강력한 데이터 처리 도구로 발전해 나갈 것입니다.

Pandas는 데이터 분석, 데이터 과학, 머신 러닝 등 다양한 분야에서 중요한 도구로 자리 잡았으며, 앞으로도 Python 생태계의 핵심 라이브러리로서 계속해서 진화할 것입니다.

 

 

pandas 는 초기에 어떻게 재정을 조달했는가? 특정 회사의 제품이었나? 

Pandas는 초기 개발 시 특정 회사의 제품으로 시작되었고, 재정 조달 역시 그 회사로부터 이루어졌습니다. 다음은 Pandas의 초기 재정 조달 및 배경에 대한 설명입니다:

초기 개발 및 재정 조달

  1. AQR Capital Management:
    • 초기 개발: Pandas는 Wes McKinney가 AQR Capital Management에서 일하던 시절에 개발되었습니다. AQR Capital Management는 금융 데이터 분석을 위해 Wes McKinney가 Pandas를 개발할 수 있도록 지원했습니다.
    • 재정 조달: 초기에는 AQR Capital Management의 내부 프로젝트로 시작되었기 때문에 회사에서 재정적인 지원과 자원을 제공했습니다. 이는 Wes McKinney가 Pandas를 개발하는 데 필요한 시간을 확보할 수 있도록 도와주었습니다.

오픈 소스 전환

  1. 오픈 소스화:
    • 공개: 2010년에 Wes McKinney는 Pandas를 오픈 소스로 공개하여 누구나 사용할 수 있도록 했습니다. 이로 인해 Pandas는 AQR Capital Management의 내부 도구에서 벗어나 전 세계 개발자와 데이터 과학자들이 사용할 수 있는 도구가 되었습니다.
    • 커뮤니티 기여: 오픈 소스로 전환되면서 많은 기여자들이 프로젝트에 참여하기 시작했고, 이는 Pandas의 기능 향상과 확장에 크게 기여했습니다.

Pandas의 발전

  1. PyData 커뮤니티 및 NumFOCUS:
    • PyData 커뮤니티: Pandas는 PyData 커뮤니티의 일환으로, Python을 사용하는 데이터 과학자와 분석가들 사이에서 널리 사용되었습니다. PyData 컨퍼런스는 Pandas를 홍보하고 교육하는 중요한 플랫폼이 되었습니다.
    • NumFOCUS: Pandas는 비영리 단체인 NumFOCUS의 지원을 받기 시작했습니다. NumFOCUS는 오픈 소스 과학 컴퓨팅 프로젝트를 지원하는 단체로, Pandas의 재정적 지원 및 인프라 제공에 기여했습니다.

결론

Pandas는 초기에는 AQR Capital Management의 내부 프로젝트로 시작되어 회사의 재정적 지원을 받았지만, 오픈 소스로 전환되면서 커뮤니티와 비영리 단체의 지원을 받으며 발전했습니다. 이 과정을 통해 Pandas는 전 세계 데이터 과학자와 분석가들이 사용하는 강력한 데이터 분석 도구로 자리 잡게 되었습니다.

댓글