Pandas 根据以前的行值,将行插入缺少行的数据框中

Pandas 根据以前的行值,将行插入缺少行的数据框中,pandas,rows,missing-data,Pandas,Rows,Missing Data,我是Python新手,这是我的第一篇帖子,所以我为任何模棱两可的措辞道歉 我有一个表,a列在几次迭代中从1增加到5。我想扫描A列,如果此模式不匹配,请为A插入正确的数字,复制C列,并为B列保留缺失的值 只需在正确的位置插入缺少值的行就可以了 您可以通过以下方式填写C列中缺少的值: @迪克斯特-谢谢:) df['G'] = (df.A.diff().fillna(-1) < 1).cumsum() df.set_index(['G','A'], inplace=True) print (df

我是Python新手,这是我的第一篇帖子,所以我为任何模棱两可的措辞道歉

我有一个表,a列在几次迭代中从1增加到5。我想扫描A列,如果此模式不匹配,请为A插入正确的数字,复制C列,并为B列保留缺失的值

只需在正确的位置插入缺少值的行就可以了

您可以通过以下方式填写
C列中缺少的值:


@迪克斯特-谢谢:)
df['G'] = (df.A.diff().fillna(-1) < 1).cumsum()
df.set_index(['G','A'], inplace=True)
print (df)
       B    C
G A          
1 1    1  Feb
  2    8  Feb
  4   64  Feb
  5  125  Feb
2 1    0  Feb
  3    6  Feb
  4   16  Feb
  5   31  Feb
3 1   -3  Feb
  3    4  Feb
  4   18  Feb
  5   29  Feb
mux = pd.MultiIndex.from_product([df.index.get_level_values('G').unique(), 
                                  np.arange(1,6)], names=('G','A'))

df = df.reindex(mux)
df.C = df.C.ffill()

df = df.reset_index(level=0, drop=True).reset_index()
print (df)
    A      B    C
0   1    1.0  Feb
1   2    8.0  Feb
2   3    NaN  Feb
3   4   64.0  Feb
4   5  125.0  Feb
5   1    0.0  Feb
6   2    NaN  Feb
7   3    6.0  Feb
8   4   16.0  Feb
9   5   31.0  Feb
10  1   -3.0  Feb
11  2    NaN  Feb
12  3    4.0  Feb
13  4   18.0  Feb
14  5   29.0  Feb