【发布时间】:2020-03-30 18:31:26
【问题描述】:
所以我基本上有一个包含几列的 Airbnb 数据集。其中一些对应于不同参数(清洁度、位置等)的评级。对于这些列,我有一堆要填充的 NaN。
由于其中一些 NaN 对应于来自同一所有者的列表,因此我想在其中一些 NaN 中填充相应主机对这些列的平均评分。
例如,假设对于主机 X,review_scores_location 的平均值是 7。我要做的是,在 review_scores_location 列中,将主机 X 对应的所有 NaN 值填充为 7。
我试过以下代码:
cols=['reviews_per_month','review_scores_rating','review_scores_accuracy','review_scores_cleanliness','review_scores_checkin','review_scores_communication','review_scores_location','review_scores_value']
for i in cols:
airbnb[i]=airbnb[i].fillna(airbnb.groupby('host_id')[i].mean())
虽然它确实运行并且没有返回任何错误,但它没有填充 NaN 值,因为当我检查是否还有任何 NaN 时,数量没有改变。
我在做什么?
感谢您抽出宝贵时间阅读本文!
【问题讨论】:
标签: python pandas group-by nan