Как я могу заменить значение NaN на среднее значение в кадре данных Pandas? - PullRequest
0 голосов
/ 28 сентября 2018

У меня есть датафрейм для заполнения значения NaN следующим образом:

Category           Rating
ART_AND_DESIGN      4.4
AUTO_AND_VEHICLES   4.2
BEAUTY              4.3
BOOKS_AND_REFERENCE 4.3
BUSINESS            4.1
COMICS              4.2
COMMUNICATION       4.2
DATING              4.0
EDUCATION           4.4

Я намерен заменить следующее значение NaN на вышеуказанный рейтинг, основанный на их категориях.

App   Category    Rating
 A     DATING      NaN (4.0)
 B     BEAUTY      NaN (4.3)
 C     BUSINESS    NaN (4.1)

Например, поскольку категория знакомств имеет рейтинг 4.0, приложение А должно быть заполнено 4.0.

1 Ответ

0 голосов
/ 28 сентября 2018

Используйте df1 после set_index до Category и map df2['Category'] с df1['Rating'] как:

df1.set_index('Category',inplace=True)
df2['Rating'] = df2['Category'].map(df1['Rating'])

Или используя replace:

df2['Rating'] = df2['Category'].replace(df1['Rating'])

print(df2)
  App  Category  Rating
0   A    DATING     4.0
1   B    BEAUTY     4.3
2   C  BUSINESS     4.1

Перед отображением кадры данных:

print(df1)
                     Rating
Category                   
ART_AND_DESIGN          4.4
AUTO_AND_VEHICLES       4.2
BEAUTY                  4.3
BOOKS_AND_REFERENCE     4.3
BUSINESS                4.1
COMICS                  4.2
COMMUNICATION           4.2
DATING                  4.0
EDUCATION               4.4

print(df2)

  App  Category  Rating
0   A    DATING     NaN
1   B    BEAUTY     NaN
2   C  BUSINESS     NaN
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...