Использование bfill с выбранным номером - PullRequest
0 голосов
/ 02 декабря 2018

У меня есть столбец фрейма данных примерно так:

 Year   Rank
  2017    Nan
  2017   Nan
  2017    3
  2017    4
  2017    5
      .
      .
  2016    Nan
  2016    Nan
  2016    3
  2016    4
  2016    5
     .
     .

Могу ли я использовать bfill для замены первых двух значений, чтобы мой столбец выглядел следующим образом ...

  Year   Rank
  2017    1
  2017    2
  2017    3
  2017    4
  2017    5
      .
      .
  2016    1
  2016    2
  2016    3
  2016    4
  2016    5
     .
     .

ИлиЕсть ли более простой способ, чем использование bfill?Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 02 декабря 2018

Используйте параметр limit в fillna:

df['Rank'] = df['Rank'].fillna(1, limit=1)
df['Rank'] = df['Rank'].fillna(2, limit=2)  

... и при необходимости вызывайте функцию для групп:

def f(x):
    x = x.fillna(1, limit=1)
    x = x.fillna(2, limit=2)   
    return x

df['New'] = df.groupby('Year')['Rank'].apply(f)
print (df)
   Year  Rank   New
0  2017   NaN   1.0
1  2017   NaN   2.0
2  2017   3.0   3.0
3  2017   4.0   4.0
4  2017   5.0   5.0
5  2016   NaN   1.0
6  2016   NaN   2.0
7  2016   5.0   5.0
8  2016   6.0   6.0
9  2016  10.0  10.0
0 голосов
/ 02 декабря 2018

Посмотрите этот документ из Pandas DataFrame.fillna

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...