R 빈 data.frame 만들기 - r bin data.frame mandeulgi

빈 데이터프레임 만드는 방법입니다.

기본적으로는 필수성분인 index와 column을 추가해주면 됩니다.

import pandas as pd df = pd.DataFrame(index=range(0,원하는갯수), columns = {'column1','column2',...})

index, column 없이 빈 데이터프레임 만든다면..

index와 column을 안 쓰고도 생성할 수 있습니다.

empty_df = pd.DataFrame()

index와 column이 없는 상태가 되면 다른 데이터프레임을 합칠때 주의를 기울여야 합니다.

간단하게 다른 데이터프레임과 합치려면 append나 concat을 이용하면 합칠 수 있습니다.

join, merge는 안 됩니다.

df = pd.DataFrame({'col1':['a','b','c']}) empty_df = pd.DataFrame() empty_df = empty_df.append(df) # concat인 경우 pd.concat((empty_df,df),sort=False)

join을 쓰고 싶다면 index가 필히 있어야 합니다.

df = pd.DataFrame({'col1':['a','b','c']}) empty_df = pd.DataFrame(index=df.index) empty_df.join(df)

merge는 left,right 설정을 해야하므로 index, column을 다 설정해주어야 합니다.

empty_df = pd.DataFrame(index=df.index,columns={'col2'}) pd.merge(empty_df,df,left_on='col2',right_on='col1',how='outer')

merge는 how 에 따라 합치는 방식이 달라지니 참고하시길 바랍니다.

관련 포스팅

[Python/Pandas] - [Pandas] 데이터프레임 합치기(append,concat)

[Python/Pandas] - [Pandas]데이터프레임 합치기(join)

[Python/Pandas] - [Pandas] DataFrame 합치기(Merge)

R 데이터프레임 행 열(파생변수) 추가하기 add row, column to dataframe

R에서 데이터프레임에 파생변수(컬럼)을 추가하는 방법을 알아보겠습니다.

열(파생변수) 추가 add column

아래와 같이 알바생의 시급과 주간 근무시간이 있는 데이터프레임 예로 들겠습니다.

df_ex <- data.frame(이름 = c("알바생1", "알바생2", "알바생3"), 시급 = c(9000, 9500, 10000), 주간근무시간 = c(32, 15, 28)) View(df_ex)

여기에 알바생에게 주어야할 '주급' 컬럼을 추가해보도록 하죠.

각 컬럼에 접근하는 방법은 아래의 link를 확인하세요.

Link : //aljjabaegi.tistory.com/515

R 데이터분석 DB table 처럼 만들어 보자 data.frame 데이터 프래임

R 데이터분석 DB table 처럼 만들어 보자 data.frame 데이터 프래임 DB 테이블 처럼 row 와 column 이 있는 데이터셋이 R에서는 data frame 입니다. row는 vectors의 데이터가, cloumn명은 vectors의 이름이 되는..

aljjabaegi.tistory.com

데이터프레임에 '$' 을 붙이고 추가하길 원하는 컬럼명(파생변수명)을 입력하면 없는 컬럼의 경우 생성이 됩니다.

있는 변수의 경우는 update.

df_ex$주급 <- df_ex$시급*df_ex$주간근무시간 View(df_ex)

위와같이 데이터프레임명$추가할컬럼명 <- 추가하길원하는데이터 를 선언해주시면 됩니다.

View(df_ex)로 확인하시면 주급 컬럼이 추가된 것을 확인하실 수 있습니다.

행 추가 add row

rbind()

df_ex2 <- data.frame(이름="알바생4", 시급=9200, 주간근무시간=40, 주급=9200*40) df_ex <- rbind(df_ex, df_ex2) View(df_ex)

위의 코드를 보시면 df_ex2 라는 데이터프레임을 하나 만들어 

rbind() 함수를 사용하여 df_ex, df_ex2 를 합칩니다. 결과를 보시죠.

'알바생4' 가 추가된 것을 확인하실 수 있습니다.

주의 하셔야 될 점은 rbind() 사용시 구조가 일치해야 합니다.

데이터프레임을 컨트롤 할 수 있는 패키지의 함수를 사용하면 보다 쉽게 행, 열을 추가 삭제 할 수 있습니다.

이 내용은 다음 포스팅에서 알아보도록 하겠습니다.

참고) row index를 사용한 행 삭제

df_ex <- df_ex[-c(4), ]

알바생4 row 삭제

데이터 프레임 생성

아래에 데이터 프레임 관련 함수를 나열했다.

표 2-19 데이터 프레임 생성 및 관련 함수

data.frame : 데이터 프레임을 생성한다.

data.frame( # value 또는 tag=value로 표현된 데이터 값. '...'은 가변 인자를 의미한다. ..., # 주어진 문자열을 팩터로 저장할 것인지 또는 문자열로 저장할 것인지를 지정하는 인자. # 기본값은 보통 TRUE. 따라서 이 인자를 지정하지 않으면 문자열은 팩터로 저장된다. stringsAsFactors=default.stringsAsFactors() )

반환 값은 데이터 프레임이다.

str : 임의의 R 객체의 내부 구조(structure)를 보인다.

str( object # 구조를 살펴볼 R 객체 )

또한, 데이터 프레임에는 앞에서 살펴본 rownames( ), colnames( ), names( )를 적용할 수 있다. 이들 함수를 사용하면 행과 컬럼(열)에 이름을 부여할 수 있다.

다음은 데이터 프레임에서 사용하는 문법이다.

표 2-20 데이터 프레임 사용 문법

문법

의미

d$colname

데이터 프레임 d에서 컬럼 이름이 colname인 데이터를 접근한다.

d$colname <- y

데이터 프레임 d에서 컬럼 이름이 colname인 컬럼에 데이터 y를 저장한다. 만약 colname이 d에 없는 새로운 이름이라면 새로운 컬럼이 추가된다.

데이터 프레임은 data.frame( )에 ‘컬럼 이름=데이터’ 형태로 데이터를 나열하여 생성한다.

> (d <- data.frame(x=c(1, 2, 3, 4, 5), y=c(2, 4, 6, 8, 10))) x y 1 1 2 2 2 4 3 3 6 4 4 8 5 5 10

데이터 프레임의 각 컬럼은 서로 다른 데이터 타입일 수 있다. 다음은 숫자 벡터 x, y에 팩터인 z 컬럼을 추가하는 예다(stringsAsFactor를 지정하지 않으면 문자열이 팩터로 저장된다).

> (d <- data.frame(x=c(1, 2, 3, 4, 5), + y=c(2, 4, 6, 8, 10), + z=c('M', 'F', 'M', 'F', 'M'))) x y z 1 1 2 M 2 2 4 F 3 3 6 M 4 4 8 F 5 5 10 M

위에 보인 출력에서는 각 컬럼의 데이터 타입을 보여주지 않아 실제로 어떤 데이터 타입으로 데이터가 저장되는지는 쉽게 알 수 없다. 이 경우 str( )을 사용해 구조를 살펴볼 수 있다.

> str(d) 'data.frame': 5 obs. of 3 variables: $ x: num 1 2 3 4 5 $ y: num 2 4 6 8 10 $ z: Factor w/ 2 levels "F","M": 2 1 2 1 2

이 결과를 보면 z 컬럼이 팩터임을 알 수 있다.

신간 소식 구독하기

뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.

Toplist

최신 우편물

태그