Python 3.x 如何使用pandas来填补与其他数据帧相比的行间距?

Python 3.x 如何使用pandas来填补与其他数据帧相比的行间距?,python-3.x,pandas,Python 3.x,Pandas,我想比较df1和df2,只填充空格而不覆盖其他值。我不知道如何在不覆盖或创建额外列的情况下实现这一点 我可以通过将df2转换为字典并使用df1进行映射来实现这一点吗 df1 = pd.DataFrame({'players name':['ram', 'john', 'ismael', 'sam', 'karan'], 'hobbies':['jog','','photos','','studying'], 'sport

我想比较df1和df2,只填充空格而不覆盖其他值。我不知道如何在不覆盖或创建额外列的情况下实现这一点

我可以通过将df2转换为字典并使用df1进行映射来实现这一点吗

df1 = pd.DataFrame({'players name':['ram', 'john', 'ismael', 'sam', 'karan'],
                   'hobbies':['jog','','photos','','studying'],
                   'sports':['cricket', 'basketball', 'chess', 'kabadi', 'volleyball']})
df1:

还有,df

df2 = pd.DataFrame({'players name':['jagan', 'mohan', 'john', 'sam', 'karan'],
                   'hobbies':['riding', 'tv', 'sliding', 'jumping', 'studying']})
df2:

我想要这样的输出:

试试这个:

df1['hobbies'] = (df1['players name'].map(df2.set_index('players name')['hobbies'])
                                     .fillna(df1['hobbies']))
df1
输出:

  players name   hobbies      sports
0          ram       jog     cricket
1         john   sliding  basketball
2       ismael    photos       chess
3          sam   jumping      kabadi
4        karan  studying  volleyball

如果空格为
NaN

df1 = pd.DataFrame({"players name":["ram","john","ismael","sam","karan"],
"hobbies":["jog",pd.np.NaN,"photos",pd.np.NaN,"studying"],
"sports":["cricket","basketball","chess","kabadi","volleyball"]})
然后

输出:

  players name   hobbies      sports
0          ram       jog     cricket
1         john   sliding  basketball
2       ismael     photos       chess
3          sam   jumping      kabadi
4        karan  studying  volleyball
df1 = pd.DataFrame({"players name":["ram","john","ismael","sam","karan"],
"hobbies":["jog",pd.np.NaN,"photos",pd.np.NaN,"studying"],
"sports":["cricket","basketball","chess","kabadi","volleyball"]})
dicts = df2.set_index("players name")['hobbies'].to_dict()
df1['hobbies'] = df1['hobbies'].fillna(df1['players name'].map(dicts))
  players name   hobbies      sports
0          ram       jog     cricket
1         john   sliding  basketball
2       ismael     photos       chess
3          sam   jumping      kabadi
4        karan  studying  volleyball