在pandas数据帧的groupby期间保留包含所有字符串的列

时间:2016-01-24 17:35:18

标签: python pandas

datetime    col_A   col_B
1/1/2012    125.501  A
1/2/2012    NaN      A
1/3/2012    125.501  A
1/4/2013    NaN      A
1/5/2013    125.501  B
2/28/2013   125.501  B
2/28/2014   125.501  B
1/2/2016    125.501  B
1/4/2016    125.501  B
2/28/2016   NaN      B

根据Fill in missing values in pandas dataframe using mean,我填写了col_A缺失值,如下所示:

df = df.groupby([df.index.month, df.index.day]).transform(lambda x: x.fillna(x.mean()))

然而,当我这样做时,它会使col_B消失。我怎样才能保留所有字符串的col_B?

1 个答案:

答案 0 :(得分:1)

我认为你可以添加col_A

df['col_A'] = df.groupby([df.index.month, df.index.day])['col_A'].transform(lambda x: 
                                                                          x.fillna(x.mean()))
print df
              col_A col_B
datetime                 
2012-01-01  125.501     A
2012-01-02  125.501     A
2012-01-03  125.501     A
2013-01-04  125.501     A
2013-01-05  125.501     B
2013-02-28  125.501     B
2014-02-28  125.501     B
2016-01-02  125.501     B
2016-01-04  125.501     B
2016-02-28  125.501     B