【问题标题】:Take subset from DataFrame based on multiple str patterns基于多个 str 模式从 DataFrame 中获取子集
【发布时间】:2022-01-19 11:58:18
【问题描述】:

我有一个熊猫数据框df。如果flsa_w_gkflsa_w_fcm 包含在df['model'] 中,我想从df 获取一个子集。

对于只有一个字符串,我会这样做:

mask = df['model'].str.contains('FLSA_W_fcm', case=False, na=False)
subset = df[mask]

以下方法可行,但似乎太冗长:

mask1 = df['model'].str.contains('FLSA_W_fcm', case=False, na=False)
subset1 = df[mask1]

mask2 = df['model'].str.contains('FLSA_W_gk', case=False, na=False)
subset2 = df[mask2]

frames = [subset1, subset2]
subset = pd.concat(frames)

有没有办法使用更少的代码行来做到这一点?

【问题讨论】:

  • 您可以在字符串包含中使用|(或)。 str.contains('FLSA_W_fcm|FLSA_W_gk')

标签: python pandas concatenation subset


【解决方案1】:

使用| 连接正则表达式or 的字符串,所以finally 只是一个掩码:

subset = df[df['model'].str.contains('FLSA_W_fcm|FLSA_W_gk', case=False, na=False)]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-23
    • 1970-01-01
    • 2016-10-07
    • 2020-03-12
    • 2018-02-10
    • 2011-11-20
    相关资源
    最近更新 更多