I have a dataframe like below:
df = pd.DataFrame({'price': ['480,000,000','477,000,000', '608,700,000', '580,000,000', '350,000,000'], 'sale_date': ['1396/10/30','1396/10/30', '1396/11/01', '1396/11/03', '1396/11/07']})
df
Out[7]:
price sale_date
0 480,000,000 1396/10/30
1 477,000,000 1396/10/30
2 608,700,000 1396/11/01
3 580,000,000 1396/11/04
4 350,000,000 1396/11/04
So then i define period datetime and resample them by day
df['sale_date']=df['sale_date'].str.replace('/','').astype(int)
df['price'] = df['price'].str.replace(',','').astype(int)
def conv(x):
return pd.Period(year=x // 10000,
month=x // 100 % 100,
day=x % 100, freq='D')
df['sale_date'] = df['sale_date'].apply(conv)
s = df.groupby('sale_date')['price'].sum()
So then i want to fill gaps datetime by value of prevoius day.
This is my desired output:
In [13]:
price sale_date
0 957,000,000 1396/10/30
2 608,700,000 1396/11/01
0 680,000,000 1396/10/02
0 680,000,000 1396/10/03
3 930,000,000 1396/11/04
or by mean of previous and next day
desired output:
In [13]:
price sale_date
0 957,000,000 1396/10/30
2 608,700,000 1396/11/01
0 769,000,000 1396/10/02
0 769,000,000 1396/10/03
3 930,000,000 1396/11/04
You can first reindex without replace missing values to
0
byfill_value
parameter, then forward and fill missiing values with sum byadd
and last divide by2
: