Naver Project (Ex) Pandas)

Jacob Kim·2024년 1월 31일
0

Naver Project Week 1

목록 보기
25/28

Pandas examples

Pandas 설치 및 import

!pip install pandas
import pandas as pd

문제 1: DataFrame 생성

  • 데이터 분석에 필요한 기본 구조 중 하나는 DataFrame입니다. Pandas를 이용하여 다음과 같은 데이터를 가진 DataFrame을 만들어 보세요
Name    Age    City
John    28     New York
Alice   24     Los Angeles
Bob     22     Chicago
data = {'Name': ['John', 'Alice', 'Bob'],
        'Age': [28, 24, 22],
        'City': ['New York', 'Los Angeles', 'Chicago']}

df = pd.DataFrame(data)
df

문제 2: DataFrame 정보 조회

  • Pandas DataFrame에서 총 row 개수, column 이름, 각 column의 데이터 타입을 출력하세요.
data = {'Name': ['John', 'Alice', 'Bob'],
        'Age': [28, 24, 22],
        'City': ['New York', 'Los Angeles', 'Chicago']}

df = pd.DataFrame(data)

print(df.shape)
print(df.columns)
print(df.dtypes)

print(df.info())
(3, 3)
Index(['Name', 'Age', 'City'], dtype='object')
Name    object
Age      int64
City    object
dtype: object
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 3 columns):
 #   Column  Non-Null Count  Dtype 
---  ------  --------------  ----- 
 0   Name    3 non-null      object
 1   Age     3 non-null      int64 
 2   City    3 non-null      object
dtypes: int64(1), object(2)
memory usage: 200.0+ bytes
None

문제 3: 특정 컬럼 기준으로 데이터 정렬하기

  • 다음과 같은 DataFrame이 주어졌을 때, 'Age' 컬럼을 기준으로 오름차순으로 정렬하세요.
data = {'Name': ['John', 'Alice', 'Bob'],
        'Age': [28, 24, 22],
        'City': ['New York', 'Los Angeles', 'Chicago']}

df = pd.DataFrame(data)

sorted_df = df.sort_values(by='Age')
print(sorted_df)
    Name  Age         City
2    Bob   22      Chicago
1  Alice   24  Los Angeles
0   John   28     New York

문제 4: 특정 조건에 맞는 데이터 필터링하기

  • 다음과 같은 DataFrame이 주어졌을 때, 나이가 25세 이상인 사람들의 데이터만 추출하세요.
data = {'Name': ['John', 'Alice', 'Bob', 'Eve'],
        'Age': [28, 24, 22, 30],
        'City': ['New York', 'Los Angeles', 'Chicago', 'Boston']}

df = pd.DataFrame(data)

filtered_df = df[df['Age'] >= 25]
print(filtered_df)
   Name  Age      City
0  John   28  New York
3   Eve   30    Boston

문제 5: 새로운 컬럼 추가하기

  • 위 4번에서 만든 DataFrame에 'Salary'라는 새로운 컬럼을 추가하고, 아래 값을 넣어 보세요
[50000, 60000, 70000, 80000]
df['Salary'] = [50000, 60000, 70000, 80000]
df

문제 6: Groupby를 이용한 집계

  • 다음과 같은 DataFrame에서 City를 기준으로 평균 나이를 계산하세요.
Name    Age    City
John    28     New York
Alice   24     Los Angeles
Bob     22     Chicago
Eve     30     Boston
Tom     40     New York
data = {'Name': ['John', 'Alice', 'Bob', 'Eve', 'Tom'],
        'Age': [28, 24, 22, 30, 40],
        'City': ['New York', 'Los Angeles', 'Chicago', 'Boston', 'New York']}

df = pd.DataFrame(data)

avg_age = df.groupby('City')['Age'].mean()
print(avg_age)
City
Boston         30.0
Chicago        22.0
Los Angeles    24.0
New York       34.0
Name: Age, dtype: float64

문제 7: 데이터 프레임 합치기 (Merge)

  • 두 개의 DataFrame을 합쳐보세요.
DataFrame 1
Name    Age
John    28
Alice   24
Bob     22

DataFrame 2
Name    City
John    New York
Alice   Los Angeles
Eve     Boston
data1 = {'Name': ['John', 'Alice', 'Bob'],
         'Age': [28, 24, 22]}

data2 = {'Name': ['John', 'Alice', 'Eve'],
         'City': ['New York', 'Los Angeles', 'Boston']}

df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)

merged_df = pd.merge(df1, df2, on='Name')
print(merged_df)

문제 8: pivot_table 사용하기

  • pivot_table을 사용하여 다음과 같은 DataFrame에서 각 도시(City)별로 직업(Job)의 평균 급여(Average Salary)를 계산하세요.
Name    City         Job       Salary
John    New York     Engineer   90000
Alice   Los Angeles  Doctor     110000
Bob     Chicago      Engineer   80000
Eve     Boston       Manager    95000
Tom     New York     Manager    105000
Smith   Los Angeles  Engineer   92000
data = {'Name': ['John', 'Alice', 'Bob', 'Eve', 'Tom', 'Smith'],
        'City': ['New York', 'Los Angeles', 'Chicago', 'Boston', 'New York', 'Los Angeles'],
        'Job': ['Engineer', 'Doctor', 'Engineer', 'Manager', 'Manager', 'Engineer'],
        'Salary': [90000, 110000, 80000, 95000, 105000, 92000]}

df = pd.DataFrame(data)

avg_salary = df.pivot_table(index='City', columns='Job', values='Salary')
print(avg_salary)
Job            Doctor  Engineer   Manager
City                                     
Boston            NaN       NaN   95000.0
Chicago           NaN   80000.0       NaN
Los Angeles  110000.0   92000.0       NaN
New York          NaN   90000.0  105000.0
profile
AI, Information and Communication, Electronics, Computer Science, Bio, Algorithms

0개의 댓글