【问题标题】:How to subset a dataframe without assigning it to a variable?如何在不将其分配给变量的情况下对数据框进行子集化?
【发布时间】:2020-04-30 07:59:16
【问题描述】:

我想在不先将其分配给变量的情况下对数据框进行子集化。

赋值示例:

df = pd.DataFrame({'A': range(10), 'B': range(5, 15)})
df[(df['A'] > 3) & (df['B'] < 12)]

结果:

   A   B
4  4   9
5  5  10
6  6  11

如何在不先创建df 的情况下做到这一点?

类似...

pd.DataFrame({'A': range(10), 'B': range(5, 15)}).loc[..., ...]

或者也许使用.pipe()

【问题讨论】:

    标签: pandas dataframe subset


    【解决方案1】:

    使用selection by callable:

    df = (pd.DataFrame({'A': range(10), 'B': range(5, 15)})
            .loc[lambda x: (x['A'] > 3) & (x['B'] < 12)])
    print (df)
       A   B
    4  4   9
    5  5  10
    6  6  11
    

    query 的另一个想法,谢谢@sammywemmy:

    df = pd.DataFrame({'A': range(10), 'B': range(5, 15)}).query("A > 3 and B < 12")
    #working same
    df = pd.DataFrame({'A': range(10), 'B': range(5, 15)}).query("A > 3 & B < 12")
    

    【讨论】:

    • 只是一个建议:pd.DataFrame({'A': range(10), 'B': range(5, 15)}).query("A &gt; 3 and B&lt;12")
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-31
    • 2017-03-19
    • 1970-01-01
    • 1970-01-01
    • 2022-01-13
    • 1970-01-01
    相关资源
    最近更新 更多