【发布时间】:2020-01-07 02:41:39
【问题描述】:
我有一个如下所示的数据框
编辑的数据框
df = pd.DataFrame({
'subject_id':[1,1,1,1,1,1,1,2,2,2,2,2],
'time_1' :['2173-04-03 12:35:00','2173-04-03 12:50:00','2173-04-05 12:59:00','2173-05-04 13:14:00','2173-05-05 13:37:00','2173-07-06 13:39:00','2173-07-08 11:30:00','2173-04-08 16:00:00','2173-04-09 22:00:00','2173-04-11 04:00:00','2173- 04-13 04:30:00','2173-04-14 08:00:00'],
'val' :[5,5,5,5,1,6,5,5,8,3,4,6]})
df['time_1'] = pd.to_datetime(df_yes['time_1'])
df['day'] = df['time_1'].dt.day
我想做的是创建一个新记录
如下图所示,你可以看到subject_id = 1,他的4th一天的记录丢失了。所以我想做的是`复制前一行
我在下面试过但没有帮助
df.groupby('subject_id)['day'].eq(df['day'].shift(-1)).add(1)
新记录的内容应与上一行相同,但应修改日期值(d+1),如下所示
我希望每个subject_id 的输出如下所示。你可以看看new record for day 4 is added。请注意,新行的时间部分并不重要。它可以是任何东西 (00:00:00)。
我只想在一个月的某个范围内添加缺失的日期。例如主题 = 1,第 4 个月有从 3 日到 5 日的记录。但缺少第 4 个。因此,我们仅添加第 4 天的记录。我们不需要 6th,7th 等
编辑输出
【问题讨论】:
标签: python python-3.x pandas dataframe pandas-groupby