当条件与另一列匹配时,我试图在列中返回值。例如:
X
和Y
是两列。 X
的值为1,2,3,4,5
。并且Y
有0,1,1,0,1
如果Y= 0
,代码应返回X(i.e 1,4)
中的所有相应值。如果Y = 1
,则应返回2,3,5
。
这是我写的代码:
for i in dataset:
if y[i] == 1:
x1 = X.iloc[:,0]
print(x1)
答案 0 :(得分:1)
只需使用子集:
import pandas as pd
df = pd.DataFrame({'X': [1,2,3,4,5], 'Y': [0, 1, 1, 0, 1]})
print(df.X[df.Y==0])
print(df.X[df.Y==1])
<小时/> 产生
0 1
3 4
Name: X, dtype: int64
和
1 2
2 3
4 5
Name: X, dtype: int64
这比其他任何东西都快得多(包括自定义编写的for
循环)。