source

큰 데이터 프레임에 인덱스(숫자 ID) 열 추가

itover 2023. 6. 6. 11:02
반응형

큰 데이터 프레임에 인덱스(숫자 ID) 열 추가

데이터 프레임에 대용량 CSV 파일을 읽어 들였습니다.csv 파일의 데이터는 사용자 정보를 나타내는 여러 웹 사이트의 데이터입니다.예를 들어, 여기 데이터 프레임의 구조가 있습니다.

user_id, number_of_logins, number_of_images, web
001, 34, 3, aa.com
002, 4, 4, aa.com
034, 3, 3, aa.com
001, 12, 4, bb.com
002, 1, 3, bb.com
034, 2, 2, cc.com

데이터 프레임에 데이터를 가져오면 보시다시피 user_id는 더 이상 고유 ID가 아니며 이로 인해 모든 분석이 발생합니다.이전에 다른 열을 추가하려고 합니다.user_id그것은 비슷한 것입니다."generated_uid"그리고 거의 대부분의 지수를 사용합니다.data.frame해당 열로 채워집니다.이것을 달성하는 가장 좋은 방법은 무엇입니까?

를 사용하여 매우 쉽게 일련의 숫자를 추가할 수 있습니다.

data$ID <- seq.int(nrow(data))

이미 사용 중인 경우library(tidyverse)사용할 수 있습니다.

data <- tibble::rowid_to_column(data, "ID")

대체 dplyr 패키지 사용:

library("dplyr")

df <- df %>% mutate(id = row_number())

만약 당신이data.frame이다.data.table당신은 특별한 기호를 사용할 수 있습니다..I:

data[, ID := .I]

음, 제가 당신을 제대로 이해했다면요.당신은 다음과 같은 것을 할 수 있습니다.

그걸 보여주기 위해, 저는 먼저 다음을 만듭니다.data.frame당신의 예를 들어

df <- 
scan(what = character(), sep = ",", text =
"001, 34, 3, aa.com
002, 4, 4, aa.com
034, 3, 3, aa.com
001, 12, 4, bb.com
002, 1, 3, bb.com
034, 2, 2, cc.com")

df <- as.data.frame(matrix(df, 6, 4, byrow = TRUE))
colnames(df) <- c("user_id", "number_of_logins", "number_of_images", "web")  

그런 다음 다음 다음 행 중 하나를 실행하여 열을 추가할 수 있습니다.data.frame행 번호를 생성된 사용자 ID로 지정합니다.두 번째 줄은 선행 0을 추가하기만 하면 됩니다.

df$generated_uid  <- 1:nrow(df)
df$generated_uid2 <- sprintf("%03d", 1:nrow(df))

생성된 사용자 ID를 첫 번째 열로 지정하려면 다음과 같이 열을 추가할 수 있습니다.

df <- cbind("generated_uid3" = sprintf("%03d", 1:nrow(df)), df)

또는 단순히 기둥을 재정렬하는 것입니다.

언급URL : https://stackoverflow.com/questions/23518605/add-an-index-numeric-id-column-to-large-data-frame

반응형