Pandas: заполнять значения NaN строка за строкой по идентификатору группы

Я пытаюсь заполнить значения NaN строка за строкой в ​​соответствии с идентификатором группы.

Я пробовал использовать fillNA, используя параметры прямого и обратного заполнения, но функция fillNA не заполняет фрейм данных строка за строкой. Кроме того, я хочу убедиться, что компании совпадают, прежде чем значения NaN будут заполнены. В этом случае использование прямого заполнения приведет к тому, что компания "Груша" будет заполнена данными компании "Банан".


appended = appended.sort_values(by=['Company','Intro'],na_position='last')
appended = appended.reset_index(drop=True)

for i in appended.index:

    if i==0:
        pass
    else:
        if appended.at[i,'Company']==appended.at[i-1,'Company']:
            appended.fillna(method='ffill',inplace=True)
        else:
            pass

добавленный фрейм данных

Company    Intro          Categories         Headquarters  Founded Date   Funding Stage

 Apple       xyz       Healthcare, Big Data     New York       2018           Series A

 Apple       NaN              NaN                NaN           NaN             NaN

 Apple       NaN              NaN                NaN           NaN             NaN

 Banana     Lier           Government           Europe        2010           Series B

 Pear        NaN              NaN                NaN           NaN             NaN

Это ожидаемый результат, которого я надеюсь достичь:

Expected Result

Company    Intro          Categories         Headquarters  Founded Date   Funding Stage

 Apple       xyz       Healthcare, Big Data     New York       2018           Series A

 Apple       xyz       Healthcare, Big Data     New York       2018           Series A

 Apple       xyz       Healthcare, Big Data     New York       2018           Series A

 Banana      Lier        Government             Europe        2010           Series B

 Pear         NaN              NaN                NaN           NaN             NaN

person terencetch    schedule 30.04.2019    source источник
comment
NaaN - это просто опечатка NaN или что-то другое? oO   -  person meissner_    schedule 30.04.2019
comment
@meissner_ Извините, это опечатка в NaN.   -  person terencetch    schedule 30.04.2019


Ответы (1)


Используйте groupby с _ 2_

df.groupby(['Company']).ffill()

  Company Intro            Categories Headquarters  Founded Date Funding Stage
0   Apple   xyz  Healthcare, Big Data     New York        2018.0      Series A
1   Apple   xyz  Healthcare, Big Data     New York        2018.0      Series A
2   Apple   xyz  Healthcare, Big Data     New York        2018.0      Series A
3  Banana  Lier            Government       Europe        2010.0      Series B
4    Pear   NaN                   NaN          NaN           NaN           NaN
person ResidentSleeper    schedule 30.04.2019