1. pandas는 파이썬 언어로 그리드 성격의 데이터를 다룰 때 주로 사용된다

  - pandas의 dataframe을 주로 제어한다

2. dataframe의 3요소 : 컬럼, 데이터(로우), 인덱스

3. dataframe 만들기

import pandas as pd

- DataFrame 생성자를 이용해 만들기

dftest = pd.DataFrame([('bird', 389.0), ('bird', 24.0), ('mammal', 80.5), ('mammal', np.nan)], index=['falcon', 'parrot', 'lion', 'monkey'], columns=('class', 'max_speed'))

print(dftest)

출력:

             class    max_speed

falcon      bird            389.0

parrot      bird              24.0

lion       mammal          80.5

monkey mammal         NaN

 

- 넘파이 행렬을 이용해서 만들기

my_2darray = np.array([[123], [456]])

print(pd.DataFrame(my_2darray))

 

- dictionary를 이용해서 만들기

my_dict = {"a": ['1''3'], "b": ['1''2'], "c": ['2''4']}

print(pd.DataFrame(my_dict))

 

- DataFrame을 이용해서 새로운 DataFrame을 만들기

my_df = pd.DataFrame(data=[4,5,6,7], index=range(0,4), columns=['A'])

print(pd.DataFrame(my_df))

 

- 시리즈를 이용해서 만들기

my_series = pd.Series({"United Kingdom":"London""India":"New Delhi""United States":"Washington""Belgium":"Brussels"})

print(pd.DataFrame(my_series))

 

- csv 파일로드하여 만들기

data = pd.read_csv('dataset\\005930.KS_5y.csv')

 

4. DataFrame shape 알아보기

df = pd.DataFrame(np.array([[1, 2, 3], [4, 5, 6]]))

 

- shape를 통해 column과 row 길이를 알 수 있다

print(df.shape)

 

- row의 개수를 알 수 있다.

print(len(df.index))

- column 타이틀명을 리스트타입으로 얻어낸다

print(list(df.columns))

 출력:[ 0, 1, 2]

 

dict = {"a": ['1''3'], "b": ['1''2'], "c": ['2''4']}

dict1 = pd.DataFrame(dict)

print(list(dict1.columns))

출력:['a', 'b', 'c']

 

5. DataFrame의 특정컬럼이나 로우(인덱스) 선택하기

-특정컬럼을 얻어낼 때:

c = df['column']

r = df.ix[index]

예제:

df = pd.DataFrame({"A":[1,4,7], "B":[2,5,8], "C":[3,6,9]})

a = df['A']

print(df)

출력:

   A  B  C
0  1  2  3
1  4  5  6
2  7  8  9

 

print(a)

출력:

0    1
1    4
2    7

 

b = df.loc[:, 'A']

print(b)

출력:

0    1
1    4
2    7

 

c = df.ix[0]['B']

print(c)

출력:

2

 

d = df.ix[1]

print(d)

출력:

A    4
B    5
C    6

 

e = df.loc[1]

print(e)

출력:

A    4
B    5
C    6

 

f = df.iloc[1]

print(f)

출력:

A    4 
B    5 
C    6

 

6. 로우 추가하기

ix의 경우 df.ix[2]인 경우 index=2인 로우를 찾아 그 로우에 데이터를 교체한다. 이때 index=2인 row가 없으면 로우를 새로 추가한다

예제:

df = pd.DataFrame(data=np.array([[10,11],[20,21],[30,31],[40,41]]),index=[3,4,5,2])

print(df)

    0   1
3  10  11
4  20  21
5  30  31
2  40  41

 

df.ix[2] = [0, 0]

print(df)

    0   1
3  10  11
4  20  21
5  30  31
2   0   0   ===>index=2인 로우를 찾아 데이터 교체

 

df.ix[1] = [1,1]

print(df)

    0   1
3  10  11
4  20  21
5  30  31
2   0   0
1   1   1  ==> index=1인 로우가 없어 마지막 줄 추가

 

7. append 이용해 row 추가

df = pd.DataFrame([[1, 2], [3, 4]], columns=list('AB'))

print(df)

   A  B

0  1  2

1  3  4

 

df2 = pd.DataFrame([[5, 6], [7, 8]], columns=list('AB'))

print(df2)

   A  B

0  5  6

1  7  8

 

df.append(df2)

print(df)

    A  B

 0  1  2

 1  3  4

 0  5  6  ==>df2의 index 그대로 셋팅

 1  7  8  ==>df2의 index 그대로 셋팅

 

df.append(df2, ignore_index=True)

print(df)

    A  B

 0  1  2

 1  3  4

 2  5  6  ==>index=2로 자동셋팅

 3  7  8  ==>index=3로 자동셋팅

 

8. 컬럼추가

df = pd.DataFrame(data=np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]), columns=['A', 'B', 'C'])

df.loc[:, 'D'] = pd.Series(['5', '6', '7'], index=df.index)

print(df)

   A  B  C  D
0  1  2  3  5
1  4  5  6  6
2  7  8  9  7


9. 컬럼삭제

df = pd.DataFrame(data=np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]), columns=['A', 'B', 'C'])

df = df.drop('A', axis=1)

print(df)

   B  C 
0  2  3  
1  5  6  
2  8  9 

 

df.drop('A', axis=1, inplace=True)

print(df)

   B  C 
0  2  3  
1  5  6  
2  8  9 

 

10. 로우 삭제

- 특정 index 번째 로우를 삭제 (0부터 카운트됨)

df = pd.DataFrame(data=np.array([[123], [456], [789]]), columns=['A''B''C'], index=[3,4,5])

df = df.drop(df.index[1])

print(df)

   A  B  C
3  1  2  3  
5  7  8  9

 

 

+ Recent posts