gpt4 book ai didi

python - pandas 条件选择 - 返回 View 而不是副本

转载 作者:行者123 更新时间:2023-11-28 18:03:17 37 4
gpt4 key购买 nike

我有一个原始的 pandas Dataframe,其中有一系列对象对其进行条件选择。每次我进行条件选择时,pandas 都会创建一个新的数据框。换句话说:

import pandas as pd

df = pd.DataFrame(dict(A=range(3,23), B=range(5,25)))
print(id(df))

df2 = df[df['A']> 15]
print(id(df2))


df = pd.DataFrame(dict(A=range(3,43), B=range(5,45)))
print(id(df))

# output:
139963862409288
139963862409456
139963862275296

在上面的示例中,我希望在更新 df 时更改 df2。我现在知道了,因为我将变量 df 重新绑定(bind)到一个新的 Pandas DataFrame(一个新对象),它的 ID 发生了变化,df2 不再连接到新的 df。反正有没有按照我想要的方式去做? pandas 中是否有任何方法/属性可以保持原始 Dataframe 和我的条件选择之间的联系,或者我不知道的任何 Pythonic 方式?

最佳答案

你想完成什么?也许它可以用不同的方式来完成?

关于拥有 View 而不是副本——当您选择单个行或列时,您就有了一个 View 。下面的代码演示了这一点:

import pandas as pd

df = pd.DataFrame(dict(A=range(8,13), B=range(10,15), C=range(-3,2)))
print(df)
print('-----------')

dfa = df['A']
df2 = df.loc[2]
dfi = df.iloc[2]

dfa[2]=42
df2['B']=99
dfi['C']=-1
print(df)
print(dfa)
print(df2)
print(dfi)

关于python - pandas 条件选择 - 返回 View 而不是副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54934147/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com