我有一个很大的数据框,其中报告了前八行:
Genes Sub-Gene Type Reference TrueType
1 SG1 type3 0 NothingYet
1 SG1 type1 1 NothingYet
1 SG2 type7 0 NothingYet
1 SG2 type3 0 NothingYet
1 SG2 type9 0 NothingYet
1 SG2 type9 1 NothingYet
2 SG1 type3 1 NothingYet
2 SG1 type7 0 NothingYet
对于每个子基因,我想要的是将“NothingYet”设置为“Type”的值,其中“Reference”是1。你知道吗
我期望的是:
Genes Sub-Gene Type Reference TrueType
1 SG1 type3 0 type1
1 SG1 type1 1 type1
1 SG2 type7 0 type9
1 SG2 type3 0 type9
1 SG2 type9 0 type9
1 SG2 type9 1 type9
2 SG1 type3 1 type3
2 SG1 type7 0 type3
到目前为止,这是我所拥有的。你知道吗
grouped = data.groupby(['Genes', 'Sub-Gene'])
for name, group in grouped:
group['TrueType'] = group.ix[group.Reference.idxmax(),'Type']
当然,这不起作用,因为您不能仅用group['TrueType']
更改值。我试过group.ix['TrueType']
,但是我得到了一个错误。你知道吗?你知道吗
这就是我要做的
导致
我想我们应该让这比现在容易些。我经常做的是排序,这样我就可以使用
transform
+iloc
来选择合适的值,比如例如:
生产
在获取所需的
TrueType
之后,可以update
一个序列。注意,我设置了索引Genes
和Sub-Gene
。如果你不想要的话,你可以reset_index
之后再做。你知道吗相关问题 更多 >
编程相关推荐