Python 为缺少的天数创建包含group by列的新行

Python 为缺少的天数创建包含group by列的新行,python,Python,我做了很多搜索,但找不到这个简单问题的解决方案 我有一个包含许多列的数据框架,为了简单起见,我只显示了4列,就像这个一样 df = pd.DataFrame({ 'groups': ['A', 'A','A','A','A','A','A','A','A', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B'], 'date': [6535, 6535, 6535, 6535, 6535, 6535, 6535, 6535, 6535,

我做了很多搜索,但找不到这个简单问题的解决方案

我有一个包含许多列的数据框架,为了简单起见,我只显示了4列,就像这个一样

df = pd.DataFrame({
   'groups': ['A', 'A','A','A','A','A','A','A','A', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B'],
   'date': [6535, 6535, 6535, 6535, 6535, 6535, 6535, 6535, 6535, 6535, 6535, 6535, 6535, 6535, 6535, 6535, 6535, 6535, 6535],
   'days': [1, 2, 4, 7, 11, 12, 13, 14, 15, 1, 3, 4, 5, 6, 9, 10, 12, 13, 14],
   'price': [64, 82, 31, 77, 21, 39, 79, 67, 45, 66, 24, 60, 64, 56, 41, 29, 60, 57, 68]
})
我想为缺少的天数创建新行,这样我就可以得到这样一个表

因此,我想按
日期
进行分组,然后扫描
列(范围为1到15),并添加一行缺失的天数,该行复制基于group by的
日期
行,但
价格
列的值为NaN(空单元格)

我在R中寻找与此类似的解决方案

library(dplyr)
library(tidyr)
df %>% group_by(date,groups) %>% complete(days = 1:15)

我试着解决这个问题。与R中的简单解决方案相比,它有点混乱。希望其他人可以拥有更好、更好的代码

def reindex(df):
    min_ = 1
    max_ = 16
    index = range(min_, max_)
    df.set_index('days', inplace = True)
    df_reindexed = df.reindex(index).reset_index()
    cols = list(set(df.columns) - set(['price']))
    df_reindexed[cols] = df_reindexed[cols].ffill().bfill()
    return df_reindexed

df2 = df1.groupby(['groups', 'date'], as_index=False).apply(reindex)
df2