这是一个数据争论问题,查询问题。我有一个数据集,每行不代表1个样本,但包含一个列,其中包含ID列表。例如,您有3列:年龄,性别& ID'第你可以有一行:28, M, 'ID209,ID208'
。
是否有简单的方法来扩展此数据集,以便每个ID号有一行?我正在使用R或Python。
答案 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