Series.interpolate(self, method='linear', axis=0, limit=None, inplace=False, limit_direction='forward', limit_area=None, downcast=None, **kwargs)
参数 | 描述 |
---|
method | str, default ‘linear’ |
axis | {0 or ‘index’, 1 or ‘columns’, None}, default None |
limit | int, optional |
inplace | bool, default False |
limit_direction | {‘forward’, ‘backward’, ‘both’}, default ‘forward’ |
limit_area | {None, ‘inside’, ‘outside’}, default None |
downcast | optional, ‘infer’ or None, defaults to None |
Returns | Series or DataFrame |
import pandas as pd
import numpy as np
df = pd.DataFrame({
'age':[15,16,14,13,17,16],
'gender':["man","woman","man","man","woman","man"]
})
df.groupby('gender').apply(lambda x: x.sort_values('age')).reset_index(drop=True)
def rank(x):
x['rank'] = x['age'].rank(method = 'first',ascending=False)
x = x.sort_values('age')
x = x.set_index('age',drop=False)
x = x.reindex([13,14,15,16,17])
x['age'] = x['age'].interpolate(method='linear',limit_direction='both')
return x
df.groupby('gender').apply(rank)
df.loc["man"]
se = pd.Series([5,np.NaN,np.NaN,2,3,4])
se.interpolate(limit_direction='both',method = 'linear')