熊猫条件选择-返回视图而不是副本

时间:2019-02-28 20:57:33

标签: python pandas dataframe

我有一个原始的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方式?

1 个答案:

答案 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)