-
[Python] PandasIT 일반 2023. 7. 4. 22:17반응형
팬더 소개
Pandas 는 고성능의 사용하기 쉬운 데이터 구조 및 데이터 분석 도구를 제공하는 Python 라이브러리 입니다 . 데이터 과학자 및 분석가가 데이터 정리 , 조작 및 분석을 위해 널리 사용합니다 .
시리즈 및 DataFrame
pandas의 두 가지 주요 데이터 구조는 Series와 DataFrame입니다. Series는 데이터의 1차원 배열인 반면 DataFrame은 데이터의 2차원 배열입니다. Series 및 DataFrames 모두 인덱싱 및 슬라이스할 수 있으며 다양한 방법을 사용하여 조작할 수 있습니다.
데이터프레임 생성
DataFrame은 목록, 사전 또는 CSV 파일과 같은 다양한 소스에서 만들 수 있습니다. 예를 들어 다음 코드는 목록에서 DataFrame을 만듭니다.
import pandas as pd data = [1, 2, 3, 4, 5] df = pd.DataFrame(data) print(df)
이 코드는 다음 DataFrame을 인쇄합니다.
0 0 1 1 2 2 3 3 4 4 5
외부 파일 로드
DataFrame은 CSV 파일과 같은 외부 파일에서도 로드할 수 있습니다. 예를 들어 다음 코드는 "data.csv"라는 CSV 파일에서 DataFrame을 로드합니다.
df = pd.read_csv("data.csv") print(df)
이 코드는 "data.csv" 파일에 저장된 DataFrame을 인쇄합니다.
DataFrame 기초 배우기
DataFrame을 만든 후에는 데이터 탐색을 시작할 수 있습니다. 및 메서드 를 사용하여 각각 DataFrame의 첫 번째 행과 마지막 몇 행을 볼 수 있습니다. 이 메서드를 사용하여 행 및 열 수, 열의 데이터 유형 및 누락된 값 과 같은 DataFrame에 대한 정보를 얻을 수도 있습니다.head()tail()info()
DataFrame 인덱싱 및 정렬
행 또는 열 이름을 사용하여 DataFrame을 인덱싱할 수 있습니다. 예를 들어 다음 코드는 DataFrame의 두 번째 행과 세 번째 열에 값을 인쇄합니다.
df["column_name"][1]
행 또는 열을 기준으로 DataFrame을 정렬할 수도 있습니다. 예를 들어 다음 코드는 해당 column_name열을 기준으로 데이터 프레임을 오름차순으로 정렬합니다.
df = df.sort_values(by="column_name")
DataFrame 행과 열 추가 및 삭제
append()및 메소드 를 사용하여 DataFrame에서 행과 열을 추가하고 삭제할 수 있습니다 drop(). 예를 들어 다음 코드는 DataFrame에 새 행을 추가합니다.
df = df.append({"column_name": "new_value"}, ignore_index=True)
다음 코드는 DataFrame에서 세 번째 열을 삭제합니다.
df = df.drop("column_name", axis=1)
DataFrame 누락 값 감지 및 처리
DataFrame에서 누락된 값은 로 표시됩니다 NaN. isnull()및 메서드를 사용하여 notnull()DataFrame에서 누락된 값을 확인할 수 있습니다. column_name예를 들어 다음 코드는 DataFrame 열에 누락된 값이 있는지 확인합니다 .
df["column_name"].isnull().values.any()
메서드를 사용하여 DataFrame에서 누락된 값을 채울 수도 있습니다 fillna(). 예를 들어 다음 코드는 열의 누락된 값을 다음 column_name값으로 채웁니다 0.
df["column_name"].fillna(0, inplace=True)
DataFrame 통계 처리
평균, 표준 편차, 최소값 및 최대값과 같은 DataFrame에 대한 다양한 통계를 계산할 수 있습니다. 예를 들어 다음 코드는 column_nameDataFrame 열에 있는 값의 평균을 계산합니다.
df["column_name"].mean()
DataFrame을 하나 이상의 열로 그룹화하고 각 그룹에 대한 통계를 계산할 수도 있습니다. 예를 들어 다음 코드는 DataFrame을 열별로 그룹화 하고 각 그룹에 대한 열 column_name값의 평균을 계산합니다 .column_name
df = df.groupby("column_name")["column_name"].mean()
데이터 분석을 위한 Pandas
Pandas는 데이터 분석을 위한 강력한 Python 라이브러리입니다. 데이터 로드, 정리, 변환 및 분석을 위한 다양한 도구를 제공합니다. Pandas는 사용하기 쉽고 효율적이며 확장 가능하기 때문에 데이터 과학자와 분석가에게 인기 있는 선택입니다 .
다음은 데이터 분석을 위한 가장 일반적인 pandas DataFrame 작업 중 일부입니다.
- 데이터 프레임 그룹화: 이 작업을 통해 데이터 프레임을 하나 이상의 열로 그룹화한 다음 그룹에서 집계 작업을 수행할 수 있습니다. 예를 들어 DataFrame을 성별로 그룹화한 다음 각 성별의 평균 급여를 계산할 수 있습니다.
- DataFrame 중복 제거: 이 작업을 통해 DataFrame에서 중복 행을 제거할 수 있습니다. 이는 중복 데이터를 제거하거나 DataFrame을 단순화하려는 경우에 유용할 수 있습니다.
- DataFrame value_counts: 이 함수는 각 값이 DataFrame 열에 나타나는 횟수를 반환합니다. 이는 열에서 가장 일반적인 값을 빠르게 식별하는 데 유용할 수 있습니다.
- DataFrame 결합: 이 작업을 통해 두 개 이상의 DataFrame을 단일 DataFrame으로 결합할 수 있습니다. 이는 서로 다른 소스의 데이터를 병합하거나 어떤 식으로든 관련된 데이터를 결합하는 데 유용할 수 있습니다.
- DataFrame 순위 지정: 이 작업을 사용하면 지정된 열을 기준으로 DataFrame의 행 순위를 지정할 수 있습니다. 이는 데이터 세트에서 최고 또는 최저 성과를 식별하는 데 유용할 수 있습니다.
- DataFrame 날짜 유형 사용: Pandas DataFrames는 날짜 또는 날짜/시간 유형으로 데이터를 저장할 수 있습니다. 이렇게 하면 날짜별로 행을 필터링하거나 두 날짜 간의 차이를 계산하는 등 데이터에 대한 날짜 관련 작업을 수행할 수 있습니다.
- dtypes: 이 함수는 DataFrame에 있는 각 열의 데이터 유형을 반환합니다. 이는 DataFrame에 저장된 데이터 유형을 이해하고 데이터 유형과 호환되는 작업을 수행하는 데 유용할 수 있습니다.
- DataFrame 적용: 이 기능을 사용하면 DataFrame의 각 행 또는 열에 기능을 적용할 수 있습니다. 이는 데이터에 대한 사용자 지정 계산을 수행하는 데 유용할 수 있습니다.
- DataFrame 맵: 이 기능을 사용하면 DataFrame 열의 값을 새 값으로 바꿀 수 있습니다. 이는 데이터를 정리하거나 데이터를 다른 형식으로 변환하는 데 유용할 수 있습니다.
- DataFrame 산술: Pandas DataFrames는 더하기, 빼기, 곱하기 및 나누기와 같은 다양한 산술 연산을 지원합니다. 이를 통해 데이터에 대한 계산을 수행하고 기존 DataFrame에서 새 DataFrame을 만들 수 있습니다.
- 원 핫 인코딩: 원 핫 인코딩은 범주형 데이터를 기계 학습 알고리즘 에서 사용할 수 있는 숫자 형식으로 변환하는 기술입니다 . Pandas는 원 핫 인코딩을 수행하기 위한 다양한 기능을 제공합니다 .
이는 데이터 분석을 위한 가장 일반적인 pandas DataFrame 작업 중 일부에 불과합니다. 자세한 내용은 pandas 문서( https://pandas.pydata.org/ )를 참조하세요.
다음은 위에서 언급한 pandas DataFrame 작업 중 일부를 보여주는 샘플 코드입니다.
import pandas as pd # Create a DataFrame df = pd.DataFrame({ "name": ["John Doe", "Jane Doe", "John Smith", "Jane Smith"], "age": [30, 25, 40, 35], "gender": ["male", "female", "male", "female"] }) # Group the DataFrame by gender grouped_df = df.groupby("gender") # Calculate the average salary for each gender average_salary_by_gender = grouped_df["salary"].mean() # Remove duplicate rows from the DataFrame df = df.drop_duplicates() # Count the number of times each value appears in the "gender" column gender_value_counts = df["gender"].value_counts() # Combine two DataFrames df_1 = pd.DataFrame({ "name": ["John Doe", "Jane Doe", "John Smith", "Jane Smith"], "age": [30, 25, 40, 35] }) df_2 = pd.DataFrame({ "name": ["John Doe", "Jane Doe", "Michael Smith"], "salary": [50000, 60000, 70000] }) df = df_1.merge(df_2, on="name") # Rank the DataFrame by salary df = df.sort_values("salary", ascending=False) # Get the date type of the "date_of_birth" column date_of_birth_dtype = df
다음은 Pandas를 사용하는 Python의 핫 인코딩에 대한 샘플 코드입니다.
import pandas as pd # Create a DataFrame df = pd.DataFrame({ "country": ["USA", "Canada", "Mexico", "Brazil", "Argentina"], "population": [330000000, 38000000, 128000000, 212000000, 44000000] }) # One hot encode the country column df = pd.get_dummies(df, columns=["country"]) # Print the DataFrame print(df)
country이 코드는 먼저 및 이라는 두 개의 열이 있는 DataFrame을 만듭니다 population. 열에 country는 5개 국가의 이름이 포함되고 population열에는 각 국가의 인구가 포함됩니다.
다음 코드 줄은 get_dummies()함수를 사용하여 열을 하나의 핫 인코딩합니다 country. 이는 열이 열의 각 고유 값 country에 대해 새 열로 변환됨을 의미합니다 . 예를 들어 열의 원래 값은 "USA", "Canada", "Mexico", "Brazil" 및 "Argentina"입니다. 한 번의 핫 인코딩 후 DataFrame에는 , , , 및 의 5개의 새로운 열이 있습니다 . 이러한 새 열 각각은 해당 국가가 원래 열에 있는 경우 값 1을 포함 하고 그렇지 않은 경우 값 0을 포함합니다.
코드의 마지막 줄은 DataFrame을 콘솔에 출력합니다. 코드의 출력 은 6개의 열이 있는 DataFrame population이고 열을 핫 인코딩하는 하나에 의해 생성된 5개의 새 열입니다 country.
다음은 코드 출력의 예입니다.
population country_Argentina country_Brazil ... country_Mexico country_USA 0 330000000 0 0 ... 0 1 1 38000000 0 0 ... 0 0 2 128000000 1 0 ... 1 0 3 212000000 0 1 ... 0 0 4 44000000 1 0 ... 0 0
반응형