我想比较 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:
players name hobbies sports
0 ram jog cricket
1 john basketball
2 ismael photos chess
3 sam kabadi
4 karan studying volleyball
并且,df,
df2 = pd.DataFrame({'players name':['jagan', 'mohan', 'john', 'sam', 'karan'],
'hobbies':['riding', 'tv', 'sliding', 'jumping', 'studying']})
df2:
players name hobbies
0 jagan riding
1 mohan tv
2 john sliding
3 sam jumping
4 karan studying
我想要这样的输出:
最佳答案
试试这个:
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
关于python-3.x - 如何使用 pandas 与其他数据框相比填充行之间的间隙?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60306134/