Pandas 根据以前的行值,将行插入缺少行的数据框中
我是Python新手,这是我的第一篇帖子,所以我为任何模棱两可的措辞道歉 我有一个表,a列在几次迭代中从1增加到5。我想扫描A列,如果此模式不匹配,请为A插入正确的数字,复制C列,并为B列保留缺失的值 只需在正确的位置插入缺少值的行就可以了 您可以通过以下方式填写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
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