python – 在函数内修改DataFrame
发布时间:2020-12-20 12:08:38 所属栏目:Python 来源:网络整理
导读:我面对一个我以前从未观察过的函数内部数据框的修改.有没有办法处理这个并且没有修改初始数据帧? In[30]: def test(df): df['tt'] = np.nan return dfIn[31]: dff = pd.DataFrame(data=[])In[32]: dffOut[32]: Empty DataFrameColumns: []Index: []In[33]:
我面对一个我以前从未观察过的函数内部数据框的修改.有没有办法处理这个并且没有修改初始数据帧?
In[30]: def test(df): df['tt'] = np.nan return df In[31]: dff = pd.DataFrame(data=[]) In[32]: dff Out[32]: Empty DataFrame Columns: [] Index: [] In[33]: df = test(dff) In[34]: dff Out[34]: Empty DataFrame Columns: [tt] Index: [] 解决方法def test(df): df = df.copy(deep=True) df['tt'] = np.nan return df 如果将数据帧传递给函数并对其进行操作并返回相同的数据帧,那么您将获得修改后版本的相同数据帧.如果您想保留旧的数据框并使用修改创建新的数据框,那么根据定义,您必须拥有2个数据框.您传入的不需要修改的内容和修改后的新内容.因此,如果您不想更改原始数据帧,最好的办法是复制原始数据帧.在我的例子中,我将函数中的变量“df”反弹到新的复制数据帧.我使用了copy方法,参数“deep = True”生成了数据帧及其内容的副本.你可以在这里阅读更多:http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.copy.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |