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 |
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
import pandas as pd
import numpy as np
df=pd.read_csv("C:\\Users\\baf03\\Downloads\\water-physical-stock-account-quarterly-1995-2020-CSV.csv")
df.loc[0,"yq"]=np.nan
df