Python

[Python] Pandas 기초

슈퍼짱짱 2020. 1. 17. 10:53
반응형

Pandas 기초 in Python


1. import


import pandas as pd


* as : 별칭(as로 별칭을 지정하면 후에 사용할 때 pandas.~가 아닌 pd.~로 사용할 수 있다. 꼭 pd가 아니라 원하는 별칭으로 지정 할 수 있다.)




2. Pandas read file : Pandas로 Data file 읽기


data_dir = ""

data = pd.read_csv(os.path.join(data_dir,"data.csv"))


* os.path.join 으로 경로를 이어 붙일 수 있다. (단, import os 필요)


ex) 

os.path.join("D:/user","data.csv") 

> 'D:/user\\data.csv'




3. Pandas Create Data : Pandas로 Data 만들기


df = pd.DataFrame([[0, 2, 3], [0, 4, 1], [0, 20, 30], [40, 20, 30]],

                  index=[4, 5, 6, 7], columns=['A', 'B', 'C'])


> df

    A   B   C

4   0   2   3

5   0   4   1

6   0  20  30

7  40  20  30




4. Pandas Indexing by column : column 이름으로 indexing 하기


df.A


4     0

5     0

6     0

7    40




5. Pandas indexing by condition : 조건에 맞는 데이터 찾기


df.loc[(df.A == 0) & (df.B < 20)]


   A  B  C

4  0  2  3

5  0  4  1


* 단, 조건이 두 개 이상일 때 각 조건을 ()로 구분해주지 않으면 에러가 난다.




6. Pandas Column rename


df = df.rename(columns={"A":"a"})


> df

    a   B   C

4   0   2   3

5   0   4   1

6   0  20  30

7  40  20  30




7. Pandas get column name


df.columns


Index(['a', 'B', 'C'], dtype='object')




8. Pandas melt


pd.melt(df, id_vars=['a'], value_vars=['B'])


    a variable  value

0   0        B      2

1   0        B      4

2   0        B     20

3  40        B     20


pd.melt(df, id_vars=['a','C'], value_vars=['B'])


    a   C variable  value

0   0   3        B      2

1   0   1        B      4

2   0  30        B     20

3  40  30        B     20


pd.melt(df, id_vars=['a'], value_vars=['B','C'])


    a variable  value

0   0        B      2

1   0        B      4

2   0        B     20

3  40        B     20

4   0        C      3

5   0        C      1

6   0        C     30

7  40        C     30




9. Pandas sort by columns


df.sort_values(by=['C'])


    a   B   C

5   0   4   1

4   0   2   3

6   0  20  30

7  40  20  30




10. Pandas column remove


df.drop(['a'], axis=1)


    B   C

4   2   3

5   4   1

6  20  30

7  20  30


df.drop(['a','B'], axis=1)


    C

4   3

5   1

6  30

7  30




반응형