代码之家  ›  专栏  ›  技术社区  ›  roberto.sannazzaro

检索数据帧的整行

  •  2
  • roberto.sannazzaro  · 技术社区  · 6 年前

    last_login ,如果日期与今天的日期匹配,我希望将整行检索到列表或类似的内容:

    def joined_today(self, df):
    
        users_joined_today = []
        date_joined = pd.DataFrame(df)
        today = datetime.date.today()
    
        for i in date_joined['last login']:
            i = i.date()
            if i == today:
                users_joined_today.append(i)
    
        return users_joined_today
    

    我只是想知道什么是检索与 joined_today()

    1 回复  |  直到 6 年前
        1
  •  1
  •   jpp    6 年前

    对于Pandas,您应该使用矢量化操作:

    # convert series to datetime, if not already
    df['last_login'] = pd.to_datetime(df['last_login'])
    
    # calculate Boolean series mask
    mask = df['last_login'].dt.normalize() == pd.to_datetime('today')
    
    # apply mask
    df_filtered = df[mask]
    
    # optionally, convert to list of lists
    df_filtered_L = df_filtered.values.tolist()
    

    datetime 级数将时间分量展平为零,因此可以将其与 pd.to_datetime('today') ,这已经正常化了。

    pd.to_datetime('now').normalize() == pd.to_datetime('today') 返回 True .