我想要什么(但不起作用)
df = np.where((df['cd_0'].values == 1) & (df['cd_1'].values == 1), df, np.nan)
请注意
的第二个参数中的 dfnp.where(... , df, ...)
我想获取整个剩余的数据框。
在这种情况下,我在整个stackoverflow上进行了查找,而我看到的唯一情况是,它返回一个特定的数据框列。 这有效,但仅返回特定的列。我想要整个剩余的数据框:
有效,但不是我想要的:
df = np.where((df['cd_0'].values == 1) & (df['cd_1'].values == 1), df['cd_2'], np.nan)
这完全符合我的要求,但由于速度原因,我不想使用此方法。
df= df[(df['cd_0'].values == 1) & (df['cd_1'].values == 1)]
答案 0 :(得分:1)
这是where
来自熊猫
df=df.where((df['cd_0'] == 1) & (df['cd_1'] == 1))
另一种方法是返回reindex
或.loc
df[(df['cd_0'] == 1) & (df['cd_1'] == 1)].reindex(df.index)
df.loc[~((df['cd_0'] == 1) & (df['cd_1'] == 1)),:]=np.nan