Modifying a Pandas DataFrame: A Comparison of Two Approaches
import numpy as np
import pandas as pd
# Create a DataFrame
df = pd.DataFrame(dict(x=[0, 1, 2],
y=[0, 0, 5]))
def func(dfx):
# Make a copy of the original DataFrame before modifying it
dfx_copy = dfx.copy()
# Filter the DataFrame to only include rows where x > 1.5
dfx_copy = dfx_copy[dfx_copy['x'] > 1.5]
# Replace values in the y column with NaN if they are equal to 5
dfx_copy.replace(5, np.nan, inplace=True)
return dfx_copy
def func_with_copy(dfx):
# Make a copy of the original DataFrame before modifying it
dfx_copy = dfx.copy()
# Filter the DataFrame to only include rows where x > 1.5
dfx_copy = dfx_copy[dfx_copy['x'] > 1.5]
# Replace values in the y column with NaN if they are equal to 5
dfx_copy.replace(5, np.nan, inplace=True)
return dfx_copy
# Call func and print the result
print(func(df))
# Call func_with_copy and print the result
print(func_with_copy(df))
Last modified on 2025-04-17