我有一个原始的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
在上面的示例中,我希望在更新df2
时更改df
。我知道,因为我将变量df重新绑定到新的Pandas DataFrame(新对象),所以其ID发生了变化,df2
不再与新的df
连接。反正有我想要的方式吗?大熊猫中是否有任何方法/属性来保持原始数据框和我的条件选择之间的联系,或者我不知道的任何Python方式?
答案 0 :(得分:1)
您要完成什么?也许可以通过其他方式来实现?
关于使用视图而不是副本-选择单个行或列时,您将拥有一个视图。下面的代码演示了这一点:
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)