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):
--- ------ -------------- -----
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 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