Pandas DataFrame列赋值后修改变量致原表自动更新问题求助
解决Pandas列赋值后修改变量影响原DataFrame的问题
为啥会这样?
直接把DataFrame的一列赋值给aae时,aae = df['Absorption_Angstrom_Exponent_440-870nm'] 其实只是创建了原数据的引用(视图),不是完全独立的副本。所以你改aae的时候,本质上是在修改原DataFrame里的对应数据。
怎么解决?
赋值的时候加上.copy()方法,生成一个独立的副本就行了:
aae = df['Absorption_Angstrom_Exponent_440-870nm'].copy()
这样不管你怎么修改aae,原DataFramedf里的列都不会受影响。
怎么确认生效了?
可以对比两者的内存地址,验证是否完全独立:
# 不加copy的情况,两者指向同一块内存 aae = df['Absorption_Angstrom_Exponent_440-870nm'] print(df['Absorption_Angstrom_Exponent_440-870nm'].values.base is aae.values.base) # 输出True # 加copy后,内存地址不同,完全独立 aae = df['Absorption_Angstrom_Exponent_440-870nm'].copy() print(df['Absorption_Angstrom_Exponent_440-870nm'].values.base is aae.values.base) # 输出False
内容的提问来源于stack exchange,提问作者Kamran Ansari
相关产品推荐
相关产品推荐

