基于列中的多个ID扩展数据集

时间:2017-10-19 21:40:37

标签: python r data-science

这是一个数据争论问题,查询问题。我有一个数据集,每行不代表1个样本,但包含一个列,其中包含ID列表。例如,您有3列:年龄,性别& ID'第你可以有一行:28, M, 'ID209,ID208'

是否有简单的方法来扩展此数据集,以便每个ID号有一行?我正在使用R或Python。

2 个答案:

答案 0 :(得分:1)

这可能不是最干净的Python解决方案,但它应该让你开始。

这假设您将拆分行分解为此表单的列表:[age, sex, 'ids']。这段代码应该易于修改以适合您的实际行格式,但这应该足以让您入门。

new_rows = []
for row in dataset:
    id1, id2 = row[2].split(',')
    new_rows.append([row[0], row[1], id1])
    new_rows.append([row[0], row[1], id2])

print(new_rows)

我希望有所帮助。

答案 1 :(得分:1)

使用tidytext的R解决方案。假设列ids中的值以逗号分隔:

library(tidytext)
library(stringr)

df1 <- data.frame(age = 28, 
                  sex = "M", 
                  ids = "ID209,ID208", 
                  stringsAsFactors = FALSE)

df1 %>% 
  unnest_tokens(id, ids, token = str_split, pattern = ",", to_lower = FALSE)

    age sex    id
1    28   M ID209
1.1  28   M ID208
相关问题