按照指定要求前向填充元素(ffill forward fill)
構(gòu)建數(shù)據(jù)如下:
import pandas as pd
df=pd.DataFrame({"A":[5,3,None,4],
"B":[None,2,4,3],
"C":[4,3,8,5],
"D":[5,4,2,None]})
df
輸出

image.png
分別使用前一行/前一列數(shù)據(jù)填充后面的Nan
df.ffill(axis = 0)

image.png
df.ffill(axis = 1)

image.png
按照指定要求后向填充元素(bfill backward fill)
構(gòu)建數(shù)據(jù)如下:
# importing pandas as pd
import pandas as pd
df = pd.DataFrame({"A":[None, 1, 2, 3, None, None],
"B":[11, 5, None, None, None, 8],
"C":[None, 5, 10, 11, None, 8]})
df

image.png
分別使用后一行/后一列數(shù)據(jù)填充前面的Nan
df.bfill(axis ='rows')
#df.bfill(axis =0) 等價(jià)

image.png
df.bfill(axis ='columns')
#df.bfill(axis =1) 等價(jià)

image.png
按照要求resample數(shù)據(jù)
現(xiàn)有數(shù)據(jù)點(diǎn)擊下載apple.csv
使用pandas打開csv文件,并把date列轉(zhuǎn)為日期索引
import pandas as pd
df = pd.read_csv("apple.csv", parse_dates =["date"], index_col ="date")
#parse_dates:boolean or list of ints or names or list of lists or dict, default False. 這個(gè)參數(shù)指定對CSV文件中日期序列的處理方式:
#默認(rèn)為False,原樣加載,不解析日期時(shí)間,
#可以為True,嘗試解析日期索引,
#可以為數(shù)字或 names 的列表,解析指定的列為時(shí)間序列,
#可以為以列表為元素的列表,解析每個(gè)子列表中的字段組合為時(shí)間序列,
#可以為值為列表的字典,解析每個(gè)列表中的字段組合為時(shí)間序列,并命名為字典中對應(yīng)的鍵值;
# Printing the first 10 rows of dataframe
df[:10]

image.png
要求按月統(tǒng)計(jì)蘋果股票的close價(jià)格的平均值
解決方法如下:
monthly_resampled_data = df.close.resample('M').mean()
monthly_resampled_data

image.png
要求按周統(tǒng)計(jì)蘋果股票的open價(jià)格的平均值
解決方法如下:
weekly_resampled_data = df.open.resample('W').mean()
weekly_resampled_data[:10]

image.png
要求按季度統(tǒng)計(jì)蘋果股票的open價(jià)格的平均值
解決方法如下:
Quarterly_resampled_data = df.open.resample('Q').mean()
Quarterly_resampled_data

image.png
按天resample數(shù)據(jù),并填充空值與Nan值
現(xiàn)有Series序列如下:
ser = pd.Series([1,10,3, np.nan], index=pd.to_datetime(['2000-01-01', '2000-01-03', '2000-01-06', '2000-01-08']))
ser

image.png
要求,重新按照天來resample,并填充控制與Nan值,產(chǎn)生如下輸出

image.png
解決方法如下:
ser.resample('D').ffill().ffill()