Create New Column In Data Frame By Interpolating Other Column In Between A Particular Date Range - Pandas
I have a df as shown below. the data is like this. Date y 0 2020-06-14 127 1 2020-06-15 216 2 2020-06-16 4 3 2020-06-17 90 4 2020-06-18 82 5 2020-06-19
Solution 1:
With some tweaks to your function it works. np.where
to create the new column, removing the =
from your conditionals, and casting to int
as per your expected output.
def df_interpolate(df, start_date, end_date):
df["Date"] = pd.to_datetime(df["Date"])
df['y_new'] = np.where((df['Date'] > start_date) & (df['Date'] < end_date), np.nan, df['y'])
df['y_new'] = df['y_new'].interpolate().round().astype(int)
return df
Date y y_new
0 2020-06-14 127 127
1 2020-06-15 216 216
2 2020-06-16 4 4
3 2020-06-17 90 90
4 2020-06-18 82 82
5 2020-06-19 70 74
6 2020-06-20 59 66
7 2020-06-21 48 58
8 2020-06-22 23 50
9 2020-06-23 25 42
10 2020-06-24 24 34
11 2020-06-25 22 26
12 2020-06-26 19 18
13 2020-06-27 10 10
14 2020-06-28 18 18
15 2020-06-29 157 157
16 2020-06-30 16 16
17 2020-07-01 14 14
18 2020-07-02 343 343
Post a Comment for "Create New Column In Data Frame By Interpolating Other Column In Between A Particular Date Range - Pandas"