You can try:
import pandas as pd
df = pd.DataFrame({'number': [float('NaN'), 3.0, 0.5, float('NaN'), 1.0], 'variable':['bank','shop','market','government','hotel'], 'values':[True, False, True, True, True]})
print("----- ORIGINAL ------")
print(df)
shop_index = df.reset_index()['variable'].tolist().index('shop') 
insert = pd.DataFrame({"number": 0.2, "variable": "park", "values": False}, index=[shop_index+1])
df2 = pd.concat([df.iloc[:shop_index+1], insert, df.iloc[shop_index+1:]]).reset_index(drop=True)
print("----- AFTER INSERT ------")
print(df2)
Output:
----- ORIGINAL ------
   number    variable  values
0     NaN        bank    True
1     3.0        shop   False
2     0.5      market    True
3     NaN  government    True
4     1.0       hotel    True
----- AFTER INSERT ------
   number    variable  values
0     NaN        bank    True
1     3.0        shop   False
2     0.2        park   False
3     0.5      market    True
4     NaN  government    True
5     1.0       hotel    True