在Dataframe上应用并获取:SettingWithCopyWarning:试图在切片的副本上设置一个值

时间:2020-06-05 01:54:51

标签: python dataframe lambda copy apply

我一直使用dataframe.apply(lambda x:f(x))就像追随者,突然之间,仅在这种情况下,我才收到这条令人讨厌的错误消息。由于它封装在App中,因此用户可以看到日志。真烦人

df_Holdings['Price'] = df_Holdings['Price'].apply(lambda x : round(x,6))

错误:

2611:SettingWithCopyWarning:试图在的副本上设置一个值 来自DataFrame的切片。尝试使用.loc [row_indexer,col_indexer] = 值

请参阅文档中的警告: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy

我也尝试过这种方式,但是收到了更深的错误消息:

df_Holdings.loc[:, 'Price'] = df_Holdings.loc[:, 'Price'].apply(lambda x : round(x,6))

错误:

C:\ ProgramData \ Anaconda3 \ lib \ site-packages \ pandas \ core \ indexing.py:543: SettingWithCopyWarning:试图在一个副本上设置一个值 从DataFrame切片。尝试使用.loc [row_indexer,col_indexer] = 值

请参阅文档中的警告: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy self.obj [item] = s

这一行真的有问题吗? 感谢您的帮助。

0 个答案:

没有答案