Python 熊猫:如何对非连续日期列进行分组?
我在数据框中有一列,其中包含非连续日期。我需要将这些日期按2天的频率分组。数据样本(标准化后):Python 熊猫:如何对非连续日期列进行分组?,python,pandas,datetime,Python,Pandas,Datetime,我在数据框中有一列,其中包含非连续日期。我需要将这些日期按2天的频率分组。数据样本(标准化后): 我尝试了以下,但由于日期不连续,我没有得到想要的结果 df.groupby(pd.Grouper(key = 'l_date', freq='2D')) 这些是使用pandas实现所需分组的一种方法,还是我应该编写一个单独的逻辑?一旦您有了l\u日期排序数据帧。您可以创建一个连续的虚拟日期(dum_date)列,并在其上按2D频率分组 或 如果你对日期以外的分组没意见。然后,将n连续行分组的一般方
我尝试了以下,但由于日期不连续,我没有得到想要的结果
df.groupby(pd.Grouper(key = 'l_date', freq='2D'))
这些是使用pandas实现所需分组的一种方法,还是我应该编写一个单独的逻辑?一旦您有了
l\u日期
排序数据帧。您可以创建一个连续的虚拟日期(dum_date
)列,并在其上按2D
频率分组
或
如果你对日期以外的分组没意见。然后,将n
连续行分组的一般方法可以是:
n = 2 # n = 2 for your use case
df = df.sort_values(by='l_date')
df['grouping'] = [(i//n + 1) for i in range(df.shape[0])]
df.groupby(pd.Grouper(key = 'grouping'))
“我没有得到期望的结果。”,您得到了什么输出?您的代码将日期与2个日历日的BIN组合在一起。你只是想把连续的行组合在一起吗?@ALollz没错。
df = df.sort_values(by='l_date')
df['dum_date'] = pd.date_range(pd.datetime.today(), periods=df.shape[0]).tolist()
df.groupby(pd.Grouper(key = 'dum_date', freq='2D'))
n = 2 # n = 2 for your use case
df = df.sort_values(by='l_date')
df['grouping'] = [(i//n + 1) for i in range(df.shape[0])]
df.groupby(pd.Grouper(key = 'grouping'))