I have a Dataframe with time series, whose values are presented below:
01/05/2023 25.1 25.9 25.1
01/05/2023 1 25.1 25.2 25.0
01/05/2023 2 24.7 25.1 24.7
01/05/2023 3 24.7 24.8 NaN
In the cell above number 1, located at [0,1], should have a zero. How is the best way to do it?
>Solution :
That depends on what pandas considers you have there:
If you have a blank space, i. e. ' '
, then you should probably try pd.replace()
import pandas as pd
import numpy as np
df = pd.DataFrame({'col1':['',1,2,3],
'col2':[25.9,25.2,25.1,24.8],
'col3':[25.1, 25.0, 24.7, np.nan]})
print(df)
returns:
col1 col2 col3
0 25.9 25.1
1 1 25.2 25.0
2 2 25.1 24.7
3 3 24.8 NaN
If you then do
df.replace('', 0, inplace=True)
print(df)
you get
col1 col2 col3
0 0 25.9 25.1
1 1 25.2 25.0
2 2 25.1 24.7
3 3 24.8 NaN
Another method of doing the same thing is using pd.replace without the inplace
argument (be careful to assign the df again then df = df.replace('',0)
.
If it’s a NaN (which I doubt seeing the other NaN in your dataframe) you could try with pd.fillna()