Используйте DataFrame.reindex
, если все значения уникальны в столбце ATR2
:
a = np.arange(df['ATR2'].min(), df['ATR2'].max() + 1)
df = df.set_index('ATR2').reindex(a, fill_value=0).reset_index()
print (df)
ATR2 ATR3
0 1 2
1 2 0
2 3 10
3 4 5
4 5 0
5 6 6
6 7 2
7 8 0
8 9 0
9 10 5
Если значения не являются уникальными, можно использовать merge
с левым соединением помощником DataFrame
, созданным np.arange
:
print (df)
ATR2 ATR3
1 1 2
2 3 10
3 4 5
4 6 6
5 7 2
6 10 5
7 1 8
df1 = pd.DataFrame({'ATR2':np.arange(df['ATR2'].min(), df['ATR2'].max() + 1)})
df = df1.merge(df, how='left').fillna(0)
print (df)
ATR2 ATR3
0 1 2.0
1 1 8.0
2 2 0.0
3 3 10.0
4 4 5.0
5 5 0.0
6 6 6.0
7 7 2.0
8 8 0.0
9 9 0.0
10 10 5.0