반응형
Notice
Recent Posts
Recent Comments
Link
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

Ethan's Values

Pandas study - pandas 튜토리얼(3) 본문

Python

Pandas study - pandas 튜토리얼(3)

Ethan_hyk 2023. 10. 19. 11:16
반응형

DataFrame에서 특정 컬럼(열) 선택하기

열과 행의 갯수를 알 수 있는 DataFrame과 Series의 속성 DataFrame.shape

두 열의 정보를 알고자 할 때는 [ ] 를 이중으로 사용하여 데이터를 불러온다.

DataFrame에서 특정 로우(행) 선택하기

35세 이상인 데이터를 뽑을 때 아래와 같이 조건식을 기반으로 해당 행(데이터)를 추출할 수 있다.

In [12]: above_35 = titanic[titanic["Age"] > 35]

In [13]: above_35.head()
Out[13]: 
    PassengerId  Survived  Pclass  ...     Fare Cabin  Embarked
1             2         1       1  ...  71.2833   C85         C
6             7         0       1  ...  51.8625   E46         S
11           12         1       1  ...  26.5500  C103         S
13           14         0       3  ...  31.2750   NaN         S
15           16         1       2  ...  16.0000   NaN         S

[5 rows x 12 columns]

조건식은 부울 값임

In [14]: titanic["Age"] > 35
Out[14]: 
0      False
1       True
2      False
3      False
4      False
       ...  
886    False
887    False
888    False
889    False
890    False
Name: Age, Length: 891, dtype: bool

만약 객실 클래스 2와3의 슥객들을 볼 때는 isin함수를 사용하여 부울 값으로 반환하여 Pclass가 2,3에 속하는 승객들을 확인할 수 있다.

In [16]: class_23 = titanic[titanic["Pclass"].isin([2, 3])]

In [17]: class_23.head()
Out[17]: 
   PassengerId  Survived  Pclass  ...     Fare Cabin  Embarked
0            1         0       3  ...   7.2500   NaN         S
2            3         1       3  ...   7.9250   NaN         S
4            5         0       3  ...   8.0500   NaN         S
5            6         0       3  ...   8.4583   NaN         Q
7            8         0       3  ...  21.0750   NaN         S

[5 rows x 12 columns]

또는 아래 코드 처럼 | (OR) 연산자로 결합할 수 있다.

In [18]: class_23 = titanic[(titanic["Pclass"] == 2) | (titanic["Pclass"] == 3)]

In [19]: class_23.head()
Out[19]: 
   PassengerId  Survived  Pclass  ...     Fare Cabin  Embarked
0            1         0       3  ...   7.2500   NaN         S
2            3         1       3  ...   7.9250   NaN         S
4            5         0       3  ...   8.0500   NaN         S
5            6         0       3  ...   8.4583   NaN         Q
7            8         0       3  ...  21.0750   NaN         S

[5 rows x 12 columns]

NaN값 제거하기

In [20]: age_no_na = titanic[titanic["Age"].notna()]

In [21]: age_no_na.head()
Out[21]: 
   PassengerId  Survived  Pclass  ...     Fare Cabin  Embarked
0            1         0       3  ...   7.2500   NaN         S
1            2         1       1  ...  71.2833   C85         C
2            3         1       3  ...   7.9250   NaN         S
3            4         1       1  ...  53.1000  C123         S
4            5         0       3  ...   8.0500   NaN         S

[5 rows x 12 columns]

DataFrame에서 특정 로우(행) ,컬럼(열) 선택하기

loc/iloc으로 조건에 해당하는 행의 특정 열을 확인할 수 있다.

loc[ A, B] A에는 행의 원하는 조건을 넣고, B에는 찾기 위한 원하는 컬럼을 넣으면 된다.

In [23]: adult_names = titanic.loc[titanic["Age"] > 35, "Name"]

In [24]: adult_names.head()
Out[24]: 
1     Cumings, Mrs. John Bradley (Florence Briggs Th...
6                               McCarthy, Mr. Timothy J
11                             Bonnell, Miss. Elizabeth
13                          Andersson, Mr. Anders Johan
15                     Hewlett, Mrs. (Mary D Kingcome) 
Name: Name, dtype: object

인덱스 값으로 특정 데이터를 찾을때는 iloc을 아래와 같이 사용하면 된다.

In [25]: titanic.iloc[9:25, 2:5]
Out[25]: 
    Pclass                                 Name     Sex
9        2  Nasser, Mrs. Nicholas (Adele Achem)  female
10       3      Sandstrom, Miss. Marguerite Rut  female
11       1             Bonnell, Miss. Elizabeth  female
12       3       Saundercock, Mr. William Henry    male
13       3          Andersson, Mr. Anders Johan    male
..     ...                                  ...     ...
20       2                 Fynney, Mr. Joseph J    male
21       2                Beesley, Mr. Lawrence    male
22       3          McGowan, Miss. Anna "Annie"  female
23       1         Sloper, Mr. William Thompson    male
24       3        Palsson, Miss. Torborg Danira  female

[16 rows x 3 columns]

선택한 데이터를 수정해보자.

REMEMBER
1. loc은 행 및 열의 라벨을 사용하여 특정 행/열을 선택한다.
2. iloc은 위치를 사용할 때 선택한다.
3. loc으로 선택 항목에 새 값을 할당할 수 있다.

 

Comments