我正在尝试使用Pandas进行一些布尔索引,并使用一些条件。我的原始数据框称为df
。如果我执行以下操作,将会得到期望的结果:
temp = df[df["bin"] == 3]
temp = temp[(~temp["Def"])]
temp = temp[temp["days since"] > 7]
temp.head()
然而,如果我执行这个操作(我认为应该是等效的),我将得到零行返回:
temp2 = df[df["bin"] == 3]
temp2 = temp2[~temp2["Def"] & temp2["days since"] > 7]
temp2.head()
你知道什么原因导致这种差异吗?
temp1 = df[df["bin"] == 3] temp2 = temp1[temp1["days since"] > 7] temp3 = temp2[~temp2["Def"]]
。 - jezraeldf[(df.col1==0) & (df.col2==1) & (df.col3==1)]
有三个列条件,但如果有50个列条件怎么办?是否有一种简单的方法,将列和条件值作为两个列表放入其中?可以使用像column_list= df.columns[11:61] value_list= 'a list of 50 values' df[df[column_list]== value_list]
这样更简单的方法。 - Tanzin Farhat