首页 > 解决方案 > 如何在数据框中满足布尔条件

问题描述

我正在处理钻石数据集的样本。我需要编写一个函数,它应该输出价格列的条目,克拉列的条目大于数字 1.1 且小于 1.4。

这是示例数据:


def exercise1(df,rowinds,colinds):
    df_1 = DataFrame(df)
    df_2 = df_1.iloc[rowinds, colinds]      
    return df_2

test_df = exercise1(diamonds,np.arange(500),np.arrange(10))
test_df

这是我到目前为止的工作:


def exercise2(df,col,output_label,val1,val2):
    df1 = DataFrame(df)
    df2 = DataFrame(df1,
        columns=[col])
    df3 = df2.rename(columns = {col:output_label})
    df4 = df3[df3 > val1]
    df5 = df4[df4 < val2]
    df6 = df5.dropna()
    return df6

下面的测试应该返回带有 172 和 376 号钻石价格的系列,但是我的返回的是 172 和 136 号钻石的克拉。


test_df = exercise1(diamonds,np.arange(500),np.arange(10))
exercise2(test_df,test_df.carat,'price',1.1,1.4)

我无法弄清楚我哪里出错了。

标签: pythonpandasnumpydataframeboolean

解决方案


推荐阅读