Python 更改DataFrame中某些条件的值,并将其保存到新df,而不影响原始df

Python 更改DataFrame中某些条件的值,并将其保存到新df,而不影响原始df,python,pandas,dataframe,indexing,Python,Pandas,Dataframe,Indexing,下面是一个例子。我将熊猫数据框写为一个列表,以便更容易阅读: df_0 = [1,2,3] 我想将大于2的值更改为np.nan,并将新的数据帧保存为新变量df_1。最终结果: df_0 = [1,2,3] df_1 = [1,2,np.nan] 数据框中的列名是什么?比如说,它是COL。然后你可以做: df_1 = df_0.copy() df_1.loc[df_1['COL'] >= 2, 'COL'] = np.nan 数据框中的列名是什么?比如说,它是COL。然后你可以做: d

下面是一个例子。我将熊猫数据框写为一个列表,以便更容易阅读:

df_0 = [1,2,3]
我想将大于2的值更改为np.nan,并将新的数据帧保存为新变量df_1。最终结果:

df_0 = [1,2,3]
df_1 = [1,2,np.nan]

数据框中的列名是什么?比如说,它是
COL
。然后你可以做:

df_1 = df_0.copy()
df_1.loc[df_1['COL'] >= 2, 'COL'] = np.nan

数据框中的列名是什么?比如说,它是
COL
。然后你可以做:

df_1 = df_0.copy()
df_1.loc[df_1['COL'] >= 2, 'COL'] = np.nan

您只需在此处设置
掩码

df_1=df_0.mask(df_0>2)
df_1
Out[291]: 
0    1.0
1    2.0
2    NaN
dtype: float64
df_0
Out[292]: 
0    1
1    2
2    3
dtype: int64

您只需在此处设置
掩码

df_1=df_0.mask(df_0>2)
df_1
Out[291]: 
0    1.0
1    2.0
2    NaN
dtype: float64
df_0
Out[292]: 
0    1
1    2
2    3
dtype: int64

此外,还有一个关键字
,其中可以使用

df_0 = pd.Series([1,2,3])
df_1 = df_0.where(df_0 <= 2)

0    1.0
1    2.0
2    NaN
dtype: float64
df_0=pd.系列([1,2,3])

df_1=df_0。where(df_0此外,还有一个关键字
where
,您可以使用它

df_0 = pd.Series([1,2,3])
df_1 = df_0.where(df_0 <= 2)

0    1.0
1    2.0
2    NaN
dtype: float64
df_0=pd.系列([1,2,3])
df_1=df_0。其中(df_0