将函数应用于pandas按列中的唯一值排序

时间:2016-02-24 20:37:17

标签: python pandas

我有以下df:

> df_mm.sort('days').head(10)

     letters  days  count  key
0          c     1     10    1
2248       b     1    NaN  NaN
2376       b     1    NaN  NaN
2504       b     1    NaN  NaN
9996       a     1    NaN  NaN
2632       c     1     13    1
2736       c     1     23    1
9892       c     1     23    1
2840       d     1    NaN  NaN
2946       a     1    NaN  NaN

我想将fillna()应用于按字母分组的每组行。我,做到这一点:

df_mm[df_filled.letters == 'a'].fillna(method='ffill')
每个字母

,并自动合并结果。

感谢。

1 个答案:

答案 0 :(得分:2)

我认为你需要:

print df.groupby('letters').apply(lambda x: x.fillna(method='ffill'))

示例(我修改df进行测试):

print df
     letters  days  count  key
0          c     1     10    1
2248       b     1      5    7
2376       b     1    NaN  NaN
2504       b     1    NaN  NaN
9996       a     1     11   23
2632       c     1     13    1
2736       c     1     23    1
9892       c     1     23    1
2840       d     1    NaN  NaN
2946       a     1    NaN  NaN

print df.groupby('letters').apply(lambda x: x.fillna(method='ffill'))
     letters  days  count  key
0          c     1     10    1
2248       b     1      5    7
2376       b     1      5    7
2504       b     1      5    7
9996       a     1     11   23
2632       c     1     13    1
2736       c     1     23    1
9892       c     1     23    1
2840       d     1    NaN  NaN
2946       a     1     11   23