【发布时间】:2019-07-19 15:28:23
【问题描述】:
我有一个如下的数据框:
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_1 到 X_3 之间“ABC”的每个实例的每个索引行。对于每个实例,我想从列 W_1 到 W_3 中提取相应的值并将其附加到新列 W。
例如,对于索引第 1 行,如果 ABC 的一个实例出现在 X_3 中,它将从 W_3 中提取相应的值。
最终产品应该是这样的。
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 模块来执行此操作?
【问题讨论】:
-
也许您可以堆叠列并创建一个新的 DataFrame。例如,新列 X 堆叠 X_1、X_2 和 X_3。然后,新列 W 堆叠 W_1、W_2 和 W_3。现在,您可以简单地过滤 df[df['X']=='ABC']['W']。