pythonpandasdataframerowsnan

adding rows with Nan values to Pandas DataFrame


I want to insert rows with Nan values after each row

index values
0 44
1 50
2 51
3 66
4 23

DataFrame should look like this

index values
0 44
1 Nan
2 50
3 Nan
4 51
5 Nan
6 66
7 Nan
8 23

Solution

  • Use concat with DataFrame filled by NaNs and same indices and then use DataFrame.sort_index:

    df = (pd.concat([df, pd.DataFrame(index=df.index)])
            .sort_index(kind='stable', ignore_index=True))
    print (df)
       values
    0    44.0
    1     NaN
    2    50.0
    3     NaN
    4    51.0
    5     NaN
    6    66.0
    7     NaN
    8    23.0
    9     NaN
    

    If need remove last missing value:

    df = (pd.concat([df, pd.DataFrame(index=df.index)])
            .sort_index(kind='stable', ignore_index=True)
            .iloc[:-1])
    print (df)
       values
    0    44.0
    1     NaN
    2    50.0
    3     NaN
    4    51.0
    5     NaN
    6    66.0
    7     NaN
    8    23.0