Python 从groupby中提取组
我有一个数据框: 我根据其中的日期栏对其进行了分组 现在,我正在从最小日期循环到最大日期,在内部循环中,我试图获取该日期的数据帧 我是这样做的:Python 从groupby中提取组,python,pandas,dataframe,group-by,Python,Pandas,Dataframe,Group By,我有一个数据框: 我根据其中的日期栏对其进行了分组 现在,我正在从最小日期循环到最大日期,在内部循环中,我试图获取该日期的数据帧 我是这样做的: grouped_df = df.group_by('date') for d in range(min_date, max_date + timedelta(days=1)): dated_df = grouped_df.get_group(d) 这对我来说很好,但只适用于范围内的日期。对于像2017年9月2020日这样不存在的日期da
grouped_df = df.group_by('date')
for d in range(min_date, max_date + timedelta(days=1)):
dated_df = grouped_df.get_group(d)
这对我来说很好,但只适用于范围内的日期。对于像2017年9月2020日这样不存在的日期dated\u df=grouped\u df.get\u group(d)
这是一个抛出错误
有人能帮我获取空数据帧而不是错误吗。我不想使用try-except。
谢谢。如果您不想尝试除之外的
操作,您可以检查是否存在:
all_dates = set(df['date'])
for d in range(min_date, max_date + timedelta(days=1)):
dated_df = grouped_df.get_group(d) if d in all_dates else None
如果不想执行除
之外的尝试,可以检查是否存在:
all_dates = set(df['date'])
for d in range(min_date, max_date + timedelta(days=1)):
dated_df = grouped_df.get_group(d) if d in all_dates else None
您也可以简单地迭代组,这样就不必担心丢失日期
grouped_df = df.group_by('date')
for date, group in grouped_df:
if date in range(min_date, max_date + timedelta(days=1)):
dated_df = group
这是假设最小和最大日期不在整个df['date']
范围内。如果目的是查看df
中的所有日期,则不需要If语句。您也可以简单地遍历组,这样就不必担心丢失日期
grouped_df = df.group_by('date')
for date, group in grouped_df:
if date in range(min_date, max_date + timedelta(days=1)):
dated_df = group
这是假设最小和最大日期不在整个df['date']
范围内。如果目的是查看df
中的所有日期,则不需要If语句。只迭代groupby
创建的组
用于分组的\u df.groups.keys()中的d:
日期=分组数据。获取数据组(d)
但是groups.keys()不一定保留顺序。只迭代groupby
创建的组
用于分组的\u df.groups.keys()中的d:
日期=分组数据。获取数据组(d)
但是,groups.keys()不一定保留顺序。很乐意提供帮助,但首先需要提供5行数据。请再查一下。谢谢。请发布您期望的outputhappy以提供帮助,但首先您需要提供5行数据。请再查一下。谢谢。请张贴您的预期输出