<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 数据帧中的单元格替换为较小数据帧中的单元格

      How to replace cells in a larger Pandas dataframe with cells from a smaller dataframe(如何将较大 pandas 数据帧中的单元格替换为较小数据帧中的单元格)
        <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 数据帧中的单元格替换为较小数据帧中的单元格的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                相关文档推荐

                How to solve memory issues while multiprocessing using Pool.map()?(如何解决使用Pool.map()进行多处理时的内存问题?)
                Computing Rolling autocorrelation using Pandas.rolling(用Pandas.Rolling计算滚动自相关)
                How to use .rolling() on each row of a Pandas dataframe?(如何对 pandas 数据帧的每一行使用.roll()?)
                pandas- changing the start and end date of resampled timeseries( pandas -更改重新采样的时间序列的开始和结束日期)
                Format / Suppress Scientific Notation from Pandas Aggregation Results(从 pandas 聚合结果中格式化/取消科学记数法)
                Export pandas dataframe to SAS sas7bdat format(将 pandas 数据帧导出为SAS sas7bdat格式)
              1. <legend id='SkPLt'><style id='SkPLt'><dir id='SkPLt'><q id='SkPLt'></q></dir></style></legend>
                  <tbody id='SkPLt'></tbody>

                <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>