我得到了一些像这样的东西: x: Users y:评级
这显示了用户1对具有4.0的电影1进行评级,用户1不对电影2进行评级,用户1对具有1.0的电影3进行评级,依此类推
rating
movieId 1 2 3 4 5 .....
userID
1 4.0 NaN 1.0 4.1 NaN
2 NaN 2 5.1 NaN NaN
3 3.0 2.0 NaN NaN NaN
4 5.0 NaN 2.8 NaN NaN如何使用电影模式填充NaN值
示例movieId 1的评级为4.0,NaN,3.0,5.0.....然后用4.0填充NaNs (模式)我试着用fill NaNs
rating.apply(lambda x: x.fillna(x.mode().item()))发布于 2021-05-04 13:57:50
试一试
rating.apply(lambda x: x.fillna(x.mode()), axis=0)指定axis=0
或者,
import numpy as np
import pandas as pd
def fillna_mode(df, cols_to_fill):
for col in cols_to_fill:
df[col].fillna(df[col].mode()[0], inplace=True)
sample = {1: [4.0, np.nan,1.0, 4.1, np.nan],
2: [np.nan, 2, 5.1, np.nan, np.nan]}
rating = pd.DataFrame(sample)print(rating) 1 2
0 4.0 NaN
1 NaN 2.0
2 1.0 5.1
3 4.1 NaN
4 NaN NaNfillna_mode(rating, [1, 2])输出
1 2
0 4.0 2.0
1 1.0 2.0
2 1.0 5.1
3 4.1 2.0
4 1.0 2.0https://stackoverflow.com/questions/67379355
复制相似问题