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'],
                   '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

我想要这样的输出:

enter image description here

最佳答案

试试这个:

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/

相关文章:

python-3.x - 如何使用word2vec进行文本分类

python-3.x - 在机器学习中,编码非分层分类特征的最佳方法是什么?

python - 如何使用 inex 对元组列表进行分组

python - 统一python 2/3版本支持类型

python - 有没有更好的方法来初始化这个类? Python

使用 python 将 MySQL 输出为 JSON

python - Pandas.DataFrame.apply 返回 None 值

python - 有没有办法删除 Excel 中的无效字符?

python-3.x - 使用 pyinstaller 将 python 脚本构建为单个 exe

python - 'CSV 不存在' - Pandas DataFrame