Gurminder Bharani Gurminder Bharani - 2 months ago 7
Python Question

how to insert new row in pandas data frame at desired index

I have a data frame which has missing dates

print data

Date Longitude Latitude Elevation Max Temperature \
4/11/1979 83.75 24.197701 238 44.769 20.007
4/12/1979 83.75 24.197701 238 41.967 18.027
4/13/1979 83.75 24.197701 238 43.053 20.549
4/15/1979 83.75 24.197701 238 40.826 20.189


How do I insert
4/14/1979
at the
4th
row

print data

Date Longitude Latitude Elevation Max Temperature \
4/11/1979 83.75 24.197701 238 44.769 20.007
4/12/1979 83.75 24.197701 238 41.967 18.027
4/13/1979 83.75 24.197701 238 43.053 20.549
4/14/1979 0.0 0.0 0 0.0 0.0
4/15/1979 83.75 24.197701 238 40.826 20.189

Answer

First convert column Date to_datetime, then set_index for resampling.

You can use resample by D (days) and then need fill NaN to 0, one posible solution is replace({np.nan:0}):

df['Date'] = pd.to_datetime(df.Date)
df.set_index('Date', inplace=True)

df = df.resample('D').replace({np.nan:0}).reset_index()
print (df)
        Date  Longitude   Latitude  Elevation     Max  Temperature
0 1979-04-11      83.75  24.197701      238.0  44.769       20.007
1 1979-04-12      83.75  24.197701      238.0  41.967       18.027
2 1979-04-13      83.75  24.197701      238.0  43.053       20.549
3 1979-04-14       0.00   0.000000        0.0   0.000        0.000
4 1979-04-15      83.75  24.197701      238.0  40.826       20.189