Skip to main content
 首页 » 编程设计

python之Pandas :合并数据框和系列/填充缺失的数据点

2025年05月04日12langtianya

我想合并 pd.DataFrame 和 pd.Series,包括所有丢失的数据。

print(x) 
 
>>> movie  rating  user 
0    100       1     1 
1    200       4     1 
2    300       3     1 
3    100       5     2 
4    200       3     2 
5    300       2     3 

x 是 pd.DataFrame。

print(y) 
 
>>> 0    100 
1    200 
2    300 
3    400 

y 是 pd.Series。 我想将此数据用作 x 中的 movie 列。 使用 x 和 y,我希望得到如下结果:

    movie  rating  user 
0     100     1.0     1 
1     200     4.0     1 
2     300     3.0     1 
3     400     NaN     1 
4     100     5.0     2 
5     200     3.0     2 
6     300     NaN     2 
7     400     NaN     2 
8     100     NaN     3 
9     200     NaN     3 
10    300     2.0     3 
11    400     NaN     3 

组合数据基本上应该是 x,每个用户的 movie=[100,200,300,400] 列就像 y 一样。

请您参考如下方法:

unstack + stack + reindex

x.set_index(['user','movie']).rating.unstack().\ 
     reindex(columns=y).\ 
        stack(dropna=False).\ 
           reset_index(name='rating') 
Out[40]:  
    user  movie  rating 
0      1    100     1.0 
1      1    200     4.0 
2      1    300     3.0 
3      1    400     NaN 
4      2    100     5.0 
5      2    200     3.0 
6      2    300     NaN 
7      2    400     NaN 
8      3    100     NaN 
9      3    200     NaN 
10     3    300     2.0 
11     3    400     NaN