df=pd.crosstab(use.ID,use.Date)
df
Out[856]:
Date 1-1-01 1-2-01 1-3-01
ID
1 1 1 1
2 1 0 1
3 1 1 1
例如,应将A列的值替换为同一行的索引C处的列(此处为B列)。无法直接定位B列,因为每一行的位置和名称都不同。
A B C
1 1 3 2
2 8 5 2
我尝试使用 A B C
1 3 3 2
2 5 5 2
,但随后他将整个C列用作向量。相反,仅应使用索引==行号处的向量值,但我无法找出解决方案。
答案 0 :(得分:0)
我们可以使用row/column
索引。使用(从“ C”列开始的)列索引创建一个matrix
行索引(seq_len(nrow(df))
),使用它来提取数据集的值并将其分配给“ A”
m1 <- cbind(seq_len(nrow(df)), df$C)
df$A <- df[m1]
df
# A B C
#1 3 3 2
#2 5 5 2
df <- structure(list(A = c(1L, 8L), B = c(3L, 5L),
C = c(2L, 2L)), class = "data.frame", row.names = c("1", "2"))
答案 1 :(得分:0)
另一种方法是unlist
data.frame
,并使用向量名称从所得向量中获取数据的子集:
dat[, "A"] <- unlist(dat)[paste0(colnames(dat)[dat$C], 1:nrow(dat))]
dat
# A B C
# 1 3 3 2
# 2 5 5 2