<legend id='eGq5Q'><style id='eGq5Q'><dir id='eGq5Q'><q id='eGq5Q'></q></dir></style></legend>
    • <bdo id='eGq5Q'></bdo><ul id='eGq5Q'></ul>

    <tfoot id='eGq5Q'></tfoot>

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

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

        为什么 pandas 的DataFrame可以相互改变?

        时间:2024-04-20
        1. <legend id='otplP'><style id='otplP'><dir id='otplP'><q id='otplP'></q></dir></style></legend>
            <tbody id='otplP'></tbody>
        2. <i id='otplP'><tr id='otplP'><dt id='otplP'><q id='otplP'><span id='otplP'><b id='otplP'><form id='otplP'><ins id='otplP'></ins><ul id='otplP'></ul><sub id='otplP'></sub></form><legend id='otplP'></legend><bdo id='otplP'><pre id='otplP'><center id='otplP'></center></pre></bdo></b><th id='otplP'></th></span></q></dt></tr></i><div id='otplP'><tfoot id='otplP'></tfoot><dl id='otplP'><fieldset id='otplP'></fieldset></dl></div>
          • <bdo id='otplP'></bdo><ul id='otplP'></ul>
          • <small id='otplP'></small><noframes id='otplP'>

            <tfoot id='otplP'></tfoot>

                  本文介绍了为什么 pandas 的DataFrame可以相互改变?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我正在尝试保留 pandas DataFrame的副本,以便我可以在保存原始数据帧的同时对其进行修改。但当我修改副本时,原始数据帧也会更改。例如:

                  df1=pd.DataFrame({'col1':['a','b','c','d'],'col2':[1,2,3,4]})
                  df1
                  
                      col1    col2
                      a       1
                      b       2
                      c       3
                      d       4
                  
                  df2=df1
                  df2['col2']=df2['col2']+1
                  df1
                  
                      col1    col2
                      a       2
                      b       3
                      c       4
                      d       5
                  
                  我将df2设置为等于df1,然后当我修改df2时,df1也会更改。为什么会这样?有没有办法保存 pandas DataFrame的备份(&Q;)而不修改它?

                  Python

                  这比数据帧深刻得多:您以错误的方式思考推荐答案变量。Python变量是指针,而不是桶。也就是说,当你写

                  >>> y = [1, 2, 3]
                  

                  您没有将[1, 2, 3]放入名为y的存储桶中;而是创建了一个指向[1, 2, 3]的名为y的指针。

                  当您随后写

                  >>> x = y
                  

                  您没有将y的内容放入名为x的存储桶中;您正在创建名为x的指针,该指针指向y所指向的相同的对象。因此:

                  >>> x[1] = 100
                  >>> print(y)
                  [1, 100, 3]
                  

                  因为xy指向同一个对象,所以通过一个指针修改它也会修改另一个指针。如果您想指向一个副本,则需要显式创建一个副本。对于列表,您可以这样做:

                  >>> y = [1, 2, 3]
                  >>> x = y[:]
                  >>> x[1] = 100
                  >>> print(y)
                  [1, 2, 3]
                  

                  通过DataFrames,您可以使用copy()方法创建副本:

                  >>> df2 = df1.copy()
                  

                  这篇关于为什么 pandas 的DataFrame可以相互改变?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                      • <bdo id='X0OXY'></bdo><ul id='X0OXY'></ul>
                        <tfoot id='X0OXY'></tfoot>
                        <legend id='X0OXY'><style id='X0OXY'><dir id='X0OXY'><q id='X0OXY'></q></dir></style></legend>

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

                            <tbody id='X0OXY'></tbody>

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