【发布时间】:2022-07-07 19:22:17
【问题描述】:
我有一个 DataFrame df:
s = pd.Series([3, 4, 5], ['earth', 'mars', 'jupiter'])
k = pd.Series([1, 2, 3], ['earth', 'mars', 'jupiter'])
df = pd.DataFrame({'mass': s, 'diameter': k})
mass diameter
earth 3 1
mars 4 2
jupiter 5 3
我将df 复制到一个新变量df2 使用:
df2 = df
以下更改将同时适用于 df 和 df2。这是可以理解的。
df["mass"]["earth"] = 100
但是下一个更改只会应用一个 DataFrame:
df = df.iloc[:2,:]
有人可以解释这种行为吗?非常感谢。
【问题讨论】:
-
df2 = df不会复制,您需要df2 = df.copy()。同样,df = df.iloc[:2,:]不会就地修改df,而是将df名称分配给新的数据框df.iloc[:2,:]
标签: python python-3.x pandas