分组
【问题一】 什么是fillna的前向/后向填充,如何实现?
就是用na值的前/后 一个非na值进行填充
可以使用fillna 函数里面的 method = ‘ffill’ or ‘bfill’
注意, 如果最开始的值是na则ffill 无法fill, 同样最后的值为na bfill也无法fill
好吧, 也可以直接用ffill函数或者bfill函数
为什么有了fillna 还要设计 ffill 与 bfill?
【问题二】 下面的代码实现了什么功能?请仿照设计一个它的groupby版本。
代码 实现了累加且遇0清0的功能.
要使用groupby, 就需要创建组, 不难想到, 每出现一个0 ,都代表新的一组. 比较笨的方法就是, 写个循环, 每遇到0 就+1, 分好组了再groupby cumsum.
好吧, 不闹了, 都循环了, 还用得着分组么, 直接遇0 清0 啊…
想不到了, 脑袋不转了
【问题三】 如何计算组内0.25分位数与0.75分位数?要求显示在同一张表上。
from collections import OrderedDict
def quant(df):
data = OrderedDict()
data[‘q_25’] = df[‘Math’].quantile(0.25)
data[‘q_75’] = df[‘Math’].quantile(0.75)
return pd.Series(data)
df.groupby(by = ‘School’).apply(quant)