简体   繁体   English

如何在熊猫数据框中用均值替换NaN值?

[英]How can I replace NaN value with mean in a Pandas dataframe?

I have a dataframe to fill NaN value as follows: 我有一个数据框来填充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

I intend to replace the following NaN value with the above Rating based on their Categories. 我打算根据其类别将以下NaN值替换为上述Rating。

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

eg Since the dating category has rating 4.0, app A should be filled with 4.0. 例如,由于约会类别的评分为4.0,因此应用A应填写4.0。

Use df1 after set_index to Category and map the df2['Category'] with df1['Rating'] as: set_index之后使用df1Category ,并将df2['Category']df1['Rating'] map为:

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

Or using replace : 或使用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

Before mapping the dataframes are: 映射数据帧之前:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM