Python 在数据框中填充缺少的天数

Python 在数据框中填充缺少的天数,python,pandas,dataframe,nan,missing-data,Python,Pandas,Dataframe,Nan,Missing Data,给定数据帧 df = pd.DataFrame(data=[[1,1,3],[1,2,6],[1,4,3],[2,2,6]],columns=['ID','Day','Value']) df Out[58]: ID Day Value 0 1 1 3 1 1 2 6 2 1 4 3 3 2 2 6 如您所见,对于ID=1,缺少与第3天相关的值,对于ID=2,缺少与第1天相关的值。。。我想填补这些空白添

给定数据帧

df = pd.DataFrame(data=[[1,1,3],[1,2,6],[1,4,3],[2,2,6]],columns=['ID','Day','Value'])

df
Out[58]: 
   ID  Day  Value
0   1    1      3
1   1    2      6
2   1    4      3
3   2    2      6
如您所见,对于ID=1,缺少与第3天相关的值,对于ID=2,缺少与第1天相关的值。。。我想填补这些空白添加np.nan和失踪的一天

Out[59]: 
   ID  Day  Value
0   1    1    3.0
1   1    2    6.0
2   1    3    NaN
3   1    4    3.0
4   2    1    NaN
5   2    2    6.0

您需要定义一个执行某些重新索引逻辑的自定义函数:

def f(x):
    return x.set_index('Day').reindex(
               np.arange(1, x.Day.max() + 1)
          ).Value
现在,执行
groupby
+
apply

df.groupby('ID').apply(f).reset_index()

   ID  Day  Value
0   1    1    3.0
1   1    2    6.0
2   1    3    NaN
3   1    4    3.0
4   2    1    NaN
5   2    2    6.0

理解问题的道具。在我读到这个答案之前,我不确定OP认为他丢失了什么数据。