代码之家  ›  专栏  ›  技术社区  ›  alwayscurious

更多的python方式-熊猫数据帧操作

  •  1
  • alwayscurious  · 技术社区  · 6 年前

    假设我有一个叫做 vals 具体如下:

    身份证件 最小日期 最长日期

    2..........2017/02/02..........2017/01/01..........2017/04/01 3..........2016/05/01..........2016/01/01..........2016/07/01

    我想添加一个名为 within_range 这说明 True 如果 date min_date max_date False

    这是我的代码,但我想知道是否有更有效的方法:

    vals['within_range'] = False
    
    for i in range(len(vals)):
        if vals.loc[i, 'date'] >= vals.loc[i, 'min_date']
              and vals.loc[i, 'date'] <= vals.loc[i, 'max_date']:
    
            vals.loc[i, 'within_range'] = True
    
    2 回复  |  直到 6 年前
        1
  •  3
  •   jpp    6 年前

    你可以用 pd.Series.between :

    vals['within_range'] = vals['date'].between(vals['min_date'], vals['max_date'])
    
        2
  •  1
  •   de1    6 年前

    vals['within_range'] = (
        vals['date'] >= vals['min_date'] &
        vals['date'] <= vals['max_date']
    )