我有一个带x行的Pandas数据帧df1
。我还有一个带x行的numpy.ndarray n1
。 n1
只有一列,值为0或1.我只想选择数据框df1
的第一列,其中相应的ndarray列的值为1.如何做到这一点?
用例如下: - 我有一个发票数据框,其第一列是客户代码。我还有一个ndarray,它是scikit churn预测的输出,基于此发票数据框作为输入。对于那些有流失症状的发票,ndarray有1,对于没有流失的发票,ndarray有0。所以我想提取流失的客户。当然,输出将具有相同客户的重复值,但可以过滤。
答案 0 :(得分:1)
您可以将指标转换为布尔值,然后使用布尔过滤。
df1 = pd.DataFrame({'a': [1, 2, 3], 'b': [4, 5, 6]})
n1 = np.array([0, 1, 1])
>>> df1
a b
0 1 4
1 2 5
2 3 6
>>> df1[n1.astype('bool')]
a b
1 2 5
2 3 6