情况我有一个dataframe,它被用作几个函数的输入,每个函数都应该返回一个输入dataframe的副本,其中的数据根据函数进行了修改。
问题如何设置函数,使其在运行时不修改原始 Dataframe (即输入 Dataframe )?
示例
df_input = pd.DataFrame({'a': [1,2,3], 'b': [4,5,6]})
df_input
a b
0 1 4
1 2 5
2 3 6
def new_func(df):
df_out = df
df_out['new'] = 'C'
return df_out
df_output = new_func(df_input)
df_output
a b new
0 1 4 C
1 2 5 C
2 3 6 C
df_input
a b new
0 1 4 C
1 2 5 C
2 3 6 C
期望的状态是仅df_output
具有添加的列。
这可能是非常直接的,但任何指针或建议将不胜感激!
1条答案
按热度按时间new9mtju1#
你需要显式地复制
df
,a = b
在python中不会复制:请注意,如果您真的想添加一个新列,只需使用
assign
: