1. 이론
  1. df.isna() 와 df.isnull()의 출력결과는 같다.

답:O

**df.isna()**와 df.isnull() 둘다 DataFrame 또는 Series 객체 내의 모든 요소가 결측값(NaN)인 경우에 True를 반환하고, 그렇지 않은 경우 False를 반환한다.

2)데이터가 아래와 같을 때, 나이가 25살 이상이고, 이름이 'Nate'인 값만 출력하고 싶은 경우, df[(df.age>25)and(df.name=='Kate')]를 써주면 된다. [1점] friend_list = [ ['name',['Kelly', 'Jenny', 'Kate']], ['age', [19,21,26]], ['job',['student', 'developer', 'teacher']] ]

답:

  1. 판다스를 활용하여 데이터를 불러올 때, csv파일은 가능하지만 txt파일은 불가능하다.

답:O

txt 파일 또한 판다스로 불러올 수 있다.

  1. dictionary를 통해 데이터프레임을 생성하면 딕셔너리의 key값이 자동적으로 row 값으로 변환된다.[2점]

답: x

딕셔너리의 key 값은 자동으로 row 값으로 변환되지 않고, column 이름으로 지정된다.

  1. df를 csv 파일로 저장하기 위해서 df.to_csv('friends.csv', index = True, header = True, na_rep = '-') 와 같이 작성했을 때, na_rep = '-'는 None 값을 '-'로 바꾼다는 의미이다.[2점]
  2. student_list = [{'name': 'A', 'major': "Computer Science", 'sex': "male"}, {'name': 'B', 'major': "Economics", 'sex': "female"}, {'name': 'C', 'major': "Physics", 'sex': "female"}, {'name': 'D', 'major': "Psychology", 'sex': "male"}, {'name': 'E', 'major': "Computer Science", 'sex': "male"}, {'name': 'F', 'major': "Economics", 'sex': "female"} ]

df = pd.DataFrame(student_list, columns = ['name', 'major', 'sex']) df['Classification']=np.where(df['sex'] != 'female' ,'1','2') 데이터가 다음과 같을 때

Classification열의 출력 값은 [ 2 , 1 , 1 , 2, 2, 1]이다.

  1. 실습
#다음의 데이터를 보고 실습문제를 진행한다.[총 15점]
stock_list = [{'stock_name': 'AAPL', 'price': "164", 'PER': 28},
                {'stock_name': 'MSFT', 'price': "284", 'PER': 32},
                {'stock_name': 'AMZN', 'price': "101", 'PER': None},
                {'stock_name': 'GOOGL', 'price': "102", 'PER': 23},
                {'stock_name': 'NVDA', 'price': "274", 'PER': 113},
                {'stock_name': 'TSLA', 'price': "192", 'PER': 52},
                {'stock_name': 'GOOG', 'price': "103", 'PER': 23},
                {'stock_name': 'META', 'price': "210", 'PER': 25},
                {'stock_name': 'ASML', 'price': "667", 'PER': 43},
                {'stock_name': 'AVGO', 'price': "639", 'PER': 21},
                {'stock_name': 'PEP', 'price': "182", 'PER': 23}
         ]
#1. 위의 값을 이용해서 데이터프레임을 생성하고 출력해라[3점]
stock_list=위에 거 쓰고
column_name=['stock name', 'price', 'per']
df=pd.Dataframe.from_records(stock_list, columns=column_name)
df.head()
'''
   stock_name price    PER
0        AAPL   164   28.0
1        MSFT   284   32.0
2        AMZN   101    NaN
3       GOOGL   102   23.0
4        NVDA   274  113.0
5        TSLA   192   52.0
6        GOOG   103   23.0
7        META   210   25.0
8        ASML   667   43.0
9        AVGO   639   21.0
10        PEP   182   23.0
'''
#2. None(NaN)을 0으로 설정하고 출력해라[3점]
'''
   stock_name price    PER
0        AAPL   164   28.0
1        MSFT   284   32.0
2        AMZN   101    0.0
3       GOOGL   102   23.0
4        NVDA   274  113.0
5        TSLA   192   52.0
6        GOOG   103   23.0
7        META   210   25.0
8        ASML   667   43.0
9        AVGO   639   21.0
10        PEP   182   23.0
'''
#3. 중복 없이, 컬럼에 있는 모든 값들을 출력해라.[3점]
df.iloc[:,0:1]
'''
['AAPL' 'MSFT' 'AMZN' 'GOOGL' 'NVDA' 'TSLA' 'GOOG' 'META' 'ASML' 'AVGO' 'PEP']
'''
#4. 각 유니크한 값별로 몇개의 데이터가 속하는 지 출력해라.[3점]
'''
23.0     3
28.0     1
32.0     1
0.0      1
113.0    1
52.0     1
25.0     1
43.0     1
21.0     1
Name: PER, dtype: int64
'''
#5. pandas에서는 sort_values() 함수를 이용하여 데이터 프레임을 특정 컬럼 또는 여러 컬럼의 값을 기준으로 정렬할 수 있다.
# PER을 기준으로 정렬하여 출력해라.[3점]

'''
   stock_name price    PER
0        AMZN   101    0.0
1        AVGO   639   21.0
2       GOOGL   102   23.0
3        GOOG   103   23.0
4         PEP   182   23.0
5        META   210   25.0
6        AAPL   164   28.0
7        MSFT   284   32.0
8        ASML   667   43.0
9        TSLA   192   52.0
10       NVDA   274  113.0
'''