【问题标题】:Copying and Modifying a Dataframe Pandas复制和修改数据框 Pandas
【发布时间】:2016-09-08 13:45:27
【问题描述】:

我有 3 个数据框 df1,df,df3 都复制了一个原始数据框 df0。

df1=df0
df2=df0
df3=df0

df1=dfo.iloc[1:,1:].div(dfo.iloc[1:,1:].sum(axis=1),axis=0)
df2=dfo.iloc[1:,1:].div(dfo.iloc[1:,1:].sum(axis=1),axis=0)*ACCOUNT_CASH
df3=df2//df0

print(df1)
print(df2)
print(df3)

不知何故这不起作用,我没有收到任何错误,但是当我打印 df1 df2 df3 我所有的数据帧都是一样的!但是它们与df0不同。是因为它们都指向内存中的相同空间,因此更改任何指针实际上会修改所有变量吗?如果是这样,我怎样才能让它运作良好。我尝试了 copy(deep=True) ,但结果不确定。谢谢

【问题讨论】:

    标签: python variables pointers pandas memory


    【解决方案1】:

    你的台词

    df1=df0
    df2=df0
    df3=df0
    

    只需创建三个新绑定,其中三个新名称指的是 df0 绑定的对象相同的对象

    要实际创建副本,请使用pd.DataFrame.copy

    df1=df0.copy()
    df2=df0.copy()
    df3=df0.copy()
    

    【讨论】:

    • 这解决了!您介意解释一下为什么 copy(deep=True) 不起作用吗?谢谢
    • @Pythus 有趣 - 我会看看它(稍后,恐怕)。
    猜你喜欢
    • 1970-01-01
    • 2019-05-04
    • 1970-01-01
    • 2019-04-19
    • 2020-06-02
    • 1970-01-01
    • 2012-08-31
    • 2020-08-25
    • 1970-01-01
    相关资源
    最近更新 更多