2. 데이터프레임(DataFrame)
페이지 정보
작성자 관리자 댓글 0건 조회 4,517회 작성일 19-09-30 23:00본문
DataFrame 객체
Pandas의 기본 자료구조이다.
2차원배열 또는 리스트, Data Table 전체를 포함하는 Object 이다.
Row와 column index가 존재한다.
각 column 은 서로 다른 데이터 타입을 가질 수 있다.
Series를 모아서 만든 Data table이다.
기본적으로 csv 포멧을 지원한다. 구분자로 column이 구분된 데이터는 모두 지원한다.
R언어의 data.frame과 비슷하다.
DataFrame 생성
dictionary 또는 numpy 배열을 사용하여 생성한다.
# -*- coding: utf-8 -*-
import pandas as pd
import numpy as np
from numpy.random import randn
np.random.seed(101) # 실행할 때 마다, 같은 값이 생성된다.
data=randn(5,4)
print(data)
df = pd.DataFrame(data, index='A B C D E'.split(), columns='가 나 다 라'.split())
print(df)
# 부분 선택하기
print(df['나'])
print(df[['나', '라']])
# 대괄호([ ]) 두개 사용한다. 리스트 타입을 넣어주어야 하기때문에
print(type(df['나'])
> python test.py
[[ 2.70684984 0.62813271 0.90796945 0.50382575]
[ 0.65111795 -0.31931804 -0.84807698 0.60596535]
[-2.01816824 0.74012206 0.52881349 -0.58900053]
[ 0.18869531 -0.75887206 -0.93323722 0.95505651]
[ 0.19079432 1.97875732 2.60596728 0.68350889]]
가 나 다 라
A 2.706850 0.628133 0.907969 0.503826
B 0.651118 -0.319318 -0.848077 0.605965
C -2.018168 0.740122 0.528813 -0.589001
D 0.188695 -0.758872 -0.933237 0.955057
E 0.190794 1.978757 2.605967 0.683509
A 0.628133
B -0.319318
C 0.740122
D -0.758872
E 1.978757
Name: 나, dtype: float64
나 라
A 0.628133 0.503826
B -0.319318 0.605965
C 0.740122 -0.589001
D -0.758872 0.955057
E 1.978757 0.683509
<class 'pandas.core.series.Series'>
계속하려면 아무 키나 누르십시오 . . .
# 새로운 컬럼
# -*- coding: utf-8 -*-
import pandas as pd
import numpy as np
from numpy.random import randn
np.random.seed(101)
data=randn(5,4)
df = pd.DataFrame(data, index='A B C D E'.split(), columns='가 나 다 라'.split())
print(df)
df['합'] = df['나'] + df['다']
print(df)
> python test.py
가 나 다 라
A 2.706850 0.628133 0.907969 0.503826
B 0.651118 -0.319318 -0.848077 0.605965
C -2.018168 0.740122 0.528813 -0.589001
D 0.188695 -0.758872 -0.933237 0.955057
E 0.190794 1.978757 2.605967 0.683509
가 나 다 라 합
A 2.706850 0.628133 0.907969 0.503826 1.536102
B 0.651118 -0.319318 -0.848077 0.605965 -1.167395
C -2.018168 0.740122 0.528813 -0.589001 1.268936
D 0.188695 -0.758872 -0.933237 0.955057 -1.692109
E 0.190794 1.978757 2.605967 0.683509 4.584725
계속하려면 아무 키나 누르십시오 . . .
# 컬럼 삭제
# -*- coding: utf-8 -*-
import pandas as pd
import numpy as np
from numpy.random import randn
np.random.seed(101)
data=randn(5,4)
df = pd.DataFrame(data, index='A B C D E'.split(), columns='가 나 다 라'.split())
print(df)
df2 = df.drop('라', axis=1) # axis=1은 column을 지운다
print(df2)
> python test.py
가 나 다 라
A 2.706850 0.628133 0.907969 0.503826
B 0.651118 -0.319318 -0.848077 0.605965
C -2.018168 0.740122 0.528813 -0.589001
D 0.188695 -0.758872 -0.933237 0.955057
E 0.190794 1.978757 2.605967 0.683509
가 나 다
A 2.706850 0.628133 0.907969
B 0.651118 -0.319318 -0.848077
C -2.018168 0.740122 0.528813
D 0.188695 -0.758872 -0.933237
E 0.190794 1.978757 2.605967
계속하려면 아무 키나 누르십시오 . . .
# -*- coding: utf-8 -*-
import pandas as pd
import numpy as np
from numpy.random import randn
np.random.seed(101)
data=randn(5,4)
df = pd.DataFrame(data, index='A B C D E'.split(), columns='가 나 다 라'.split())
print(df)
df.drop('라', axis=1, inplace=True)
print(df)
df.drop('E', axis=0, inplace=True)
print(df)
# axis=0은 행(row)을 지운다.
# inplace=True을 사용하면 데이터가 완전히 지워진다.
> python test.py
가 나 다 라
A 2.706850 0.628133 0.907969 0.503826
B 0.651118 -0.319318 -0.848077 0.605965
C -2.018168 0.740122 0.528813 -0.589001
D 0.188695 -0.758872 -0.933237 0.955057
E 0.190794 1.978757 2.605967 0.683509
가 나 다
A 2.706850 0.628133 0.907969
B 0.651118 -0.319318 -0.848077
C -2.018168 0.740122 0.528813
D 0.188695 -0.758872 -0.933237
E 0.190794 1.978757 2.605967
가 나 다
A 2.706850 0.628133 0.907969
B 0.651118 -0.319318 -0.848077
C -2.018168 0.740122 0.528813
D 0.188695 -0.758872 -0.933237
계속하려면 아무 키나 누르십시오 . . .
# row 선택
# -*- coding: utf-8 -*-
import pandas as pd
import numpy as np
from numpy.random import randn
np.random.seed(101)
data=randn(5,4)
df = pd.DataFrame(data, index='A B C D E'.split(), columns='가 나 다 라'.split())
print(df)
print(df.loc['A'])
print(df.iloc[2])
print(df.loc['B','다'])
print(df.loc[['A','B'],['나','다']])
> python test.py
가 나 다 라
A 2.706850 0.628133 0.907969 0.503826
B 0.651118 -0.319318 -0.848077 0.605965
C -2.018168 0.740122 0.528813 -0.589001
D 0.188695 -0.758872 -0.933237 0.955057
E 0.190794 1.978757 2.605967 0.683509
가 2.706850
나 0.628133
다 0.907969
라 0.503826
Name: A, dtype: float64
가 -2.018168
나 0.740122
다 0.528813
라 -0.589001
Name: C, dtype: float64
-0.8480769834036315
나 다
A 0.628133 0.907969
B -0.319318 -0.848077
계속하려면 아무 키나 누르십시오 . . .
댓글목록
등록된 댓글이 없습니다.