我有一个数据框如下:
Index X_1 X_2 X_3 W_1 W_2 W_3
1 IEZ XOP ABC 0.42 0.18 0.40
2 PXJ ABC XES 0.47 0.12 0.41
3 ABC RYE PXE 0.23 0.33 0.44
4 XOP IEZ ABC 0.62 0.20 0.18
我想检查X\u1到X\u3列之间每个“ABC”实例的索引行。对于每一个实例,我都想从W\u1到W\u3列中提取相应的值,并将其附加到一个新的W列中
例如,对于索引行1,如果ABC的一个实例出现在xu3中,它将从wu3中提取相应的值。你知道吗
最终产品应该是这样的。你知道吗
Index X_1 X_2 X_3 W_1 W_2 W_3 **W**
1 IEZ XOP ABC 0.42 0.18 0.40 **0.40**
2 PXJ ABC XES 0.47 0.12 0.41 **0.12**
3 ABC RYE PXE 0.23 0.33 0.44 **0.23**
4 XOP IEZ ABC 0.62 0.20 0.18 **0.18**
如何仅在导入numpy和pandas模块的情况下执行此操作?
或者
另一种方法:
首先,取数字列:
接下来,使用
X_1
->;X_3
列生成布尔掩码:最后,使用DataFrame mask方法,当单元为真时返回NaNs,当掩码为假时返回单元值。然后,我们将对结果行求和,并将其分配给原始数据帧:
当然,这可以组合成一行:
编辑:
当然,这只在每行只有一个
'ABC'
实例的情况下才有效-您可能需要对此进行检查。你知道吗很有趣。我相信有更好的办法,但是:
基本上我迭代x列和它们匹配的w列,找到x值为'abc'的地方,并用匹配的w值填充一个新的'w'列。你知道吗
它是从我的手机,所以我不能尝试它,但这是一般的想法。你知道吗
相关问题 更多 >
编程相关推荐