<small id='Ooqwv'></small><noframes id='Ooqwv'>

    1. <i id='Ooqwv'><tr id='Ooqwv'><dt id='Ooqwv'><q id='Ooqwv'><span id='Ooqwv'><b id='Ooqwv'><form id='Ooqwv'><ins id='Ooqwv'></ins><ul id='Ooqwv'></ul><sub id='Ooqwv'></sub></form><legend id='Ooqwv'></legend><bdo id='Ooqwv'><pre id='Ooqwv'><center id='Ooqwv'></center></pre></bdo></b><th id='Ooqwv'></th></span></q></dt></tr></i><div id='Ooqwv'><tfoot id='Ooqwv'></tfoot><dl id='Ooqwv'><fieldset id='Ooqwv'></fieldset></dl></div>
      <tfoot id='Ooqwv'></tfoot>

        <bdo id='Ooqwv'></bdo><ul id='Ooqwv'></ul>

    2. <legend id='Ooqwv'><style id='Ooqwv'><dir id='Ooqwv'><q id='Ooqwv'></q></dir></style></legend>

      如何将较大 pandas 数据帧中的单元格替换为较小数据帧中的单元格

      时间:2024-08-10
        <tbody id='smbS0'></tbody>
          <bdo id='smbS0'></bdo><ul id='smbS0'></ul>
          <legend id='smbS0'><style id='smbS0'><dir id='smbS0'><q id='smbS0'></q></dir></style></legend>

          <small id='smbS0'></small><noframes id='smbS0'>

        • <i id='smbS0'><tr id='smbS0'><dt id='smbS0'><q id='smbS0'><span id='smbS0'><b id='smbS0'><form id='smbS0'><ins id='smbS0'></ins><ul id='smbS0'></ul><sub id='smbS0'></sub></form><legend id='smbS0'></legend><bdo id='smbS0'><pre id='smbS0'><center id='smbS0'></center></pre></bdo></b><th id='smbS0'></th></span></q></dt></tr></i><div id='smbS0'><tfoot id='smbS0'></tfoot><dl id='smbS0'><fieldset id='smbS0'></fieldset></dl></div>

          1. <tfoot id='smbS0'></tfoot>

                本文介绍了如何将较大 pandas 数据帧中的单元格替换为较小数据帧中的单元格的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                问题描述

                我有两个 pandas 数据帧:

                较小:

                较大:

                我希望匹配Ticker和Year,然后用较小的数据帧中的数字替换第一列和最后一列中的数字。

                我尝试过使用pd.merge,但我只成功地添加了行或列,而没有替换特定的单元格。有人能发布一些代码来实现这一点吗?

                推荐答案

                可以使用mergeWITH LEFT JOIN和suffixes,然后使用combine_firstWITH RENAME FOR REMOVE_

                df1 = pd.DataFrame({'Ticker':list('abcdef'),
                                   'Year':[2013,2014,2013,2014,2013,2014],
                                   'C':[7,8,9,4,2,3],
                                   'Last':[1,3,5,7,1,0],
                                   'First':[5,3,6,9,2,4],
                                   'F':list('aaabbb')})
                
                print (df1)
                   C  F  First  Last Ticker  Year
                0  7  a      5     1      a  2013
                1  8  a      3     3      b  2014
                2  9  a      6     5      c  2013
                3  4  b      9     7      d  2014
                4  2  b      2     1      e  2013
                5  3  b      4     0      f  2014
                
                df2 = pd.DataFrame({'First':[4,5,4,5],
                                   'Last':[7,8,9,4],
                                   'Year':[2013,2014,2014,2015],
                                   'Ticker':list('aabc')})
                
                print (df2)
                   First  Last Ticker  Year
                0      4     7      a  2013
                1      5     8      a  2014
                2      4     9      b  2014
                3      5     4      c  2015
                

                df = df1.merge(df2, suffixes=('_',''), on=['Ticker','Year'], how='left')
                df1[['First','Last']] = (df[['First','Last']].combine_first(df[['First_','Last_']]
                                                             .rename(columns=lambda x: x.strip('_'))))
                
                print (df1)
                   C  F  First  Last Ticker  Year
                0  7  a    4.0   7.0      a  2013
                1  8  a    4.0   9.0      b  2014
                2  9  a    6.0   5.0      c  2013
                3  4  b    9.0   7.0      d  2014
                4  2  b    2.0   1.0      e  2013
                5  3  b    4.0   0.0      f  2014
                

                这篇关于如何将较大 pandas 数据帧中的单元格替换为较小数据帧中的单元格的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                上一篇:如何按第一个元素(字符串)按字母顺序对元组列表进行排序[Python] 下一篇:带整数X轴的甘特图的快速绘图时间线?

                相关文章

              1. <legend id='SkPLt'><style id='SkPLt'><dir id='SkPLt'><q id='SkPLt'></q></dir></style></legend>
              2. <tfoot id='SkPLt'></tfoot>

                  1. <small id='SkPLt'></small><noframes id='SkPLt'>

                    • <bdo id='SkPLt'></bdo><ul id='SkPLt'></ul>
                    <i id='SkPLt'><tr id='SkPLt'><dt id='SkPLt'><q id='SkPLt'><span id='SkPLt'><b id='SkPLt'><form id='SkPLt'><ins id='SkPLt'></ins><ul id='SkPLt'></ul><sub id='SkPLt'></sub></form><legend id='SkPLt'></legend><bdo id='SkPLt'><pre id='SkPLt'><center id='SkPLt'></center></pre></bdo></b><th id='SkPLt'></th></span></q></dt></tr></i><div id='SkPLt'><tfoot id='SkPLt'></tfoot><dl id='SkPLt'><fieldset id='SkPLt'></fieldset></dl></div>