简体   繁体   English

将特定于类别的值分配为新列中的观察值

[英]Assigning Category specific values as observations in a new column

I'm assigning value "x" to all observations in column 'Superkingdom_name' when category Unknown1 is selected in Class column.当在 Class 列中选择类别 Unknown1 时,我将值“x”分配给列“Superkingdom_name”中的所有观察值。

df.loc[df['class'] == "Unknown1", 'Superkingdom_name'] = "x"

Similarly for assigning value Y to Unknown2, I do it like this同样,将值 Y 分配给 Unknown2,我这样做

df.loc[df['class'] == "Unknown2", 'Superkingdom_name'] = "y"

Question: Can we do this for multiple categories.问题:我们可以为多个类别执行此操作吗? But not manually.但不是手动的。 Can we loop it?我们可以循环吗? Instead of doing for each category as below:而不是为每个类别做如下:

df.loc[df['class'] == "Unknown1", 'Superkingdom_name'] = "x"
df.loc[df['class'] == "Unknown2", 'Superkingdom_name'] = "y"
df.loc[df['class'] == "Unknown2", 'Superkingdom_name'] = "z"

I could make a list of categories in "Class" column and make it an iterable like我可以在“类”列中列出类别并使其成为可迭代的

df["class"].unique().tolist()

---> ["Unknown1","Unknown2","Unknown3"] ---> ["Unknown1","Unknown2","Unknown3"]

But I do not get how to assign values to the "Superkingdom_name" in a for loop.但我不知道如何在 for 循环中为“Superkingdom_name”赋值。

Try using replace().尝试使用替换()。

df['Superkingdom_name']= df['class'].replace(['Unknown1','Unknown2','Unknown3'],['x','y','z'])

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM