【发布时间】:2020-10-11 20:29:15
【问题描述】:
总的来说,我对数据分析还很陌生,更不用说 pandas 和 python,但我已经做了很多搜索来尝试解决这个问题,但无法确定到底是什么问题。我希望有人能抓住它。当我运行我的函数时,它可以工作,但我遇到了以下错误:SettingWithCopyWarning: 试图在 DataFrame 中的切片副本上设置值。 尝试改用 .loc[row_indexer,col_indexer] = value
理想情况下,我希望解决此问题并了解正确的最佳做法是什么。我已经将问题定位到这一行代码:
region_filtered_data = data.loc[(data['region'] == region[:-1]) & (data['type'] == 'conventional')]
据我所知,问题的最常见原因是当您为数据框的某些部分重新分配值时,这不是我在这里所做的。我只是想将我的数据框过滤为仅那些“区域”列中的值与我指定的值匹配且“类型”是常规的记录。
【问题讨论】:
-
嗨!在您的代码中 - region[:-1] - 什么是区域?是数据框还是列表?
-
@Ian 感谢您的回复,它是一个字符串,但它在最后返回一个空格,所以我正在解析那个空间。我想获取与字符串匹配的所有行。
-
知道了,试试下面的代码。让我知道它是否有效。
-
不幸的是,我正在使用一个名为 region 的字符串,以及数据框中的一个名为 region 的列。我想获取数据框“区域”列中的区域与字符串区域的值匹配的所有行。我正在使用 region[:-1] 将区域字符串从“Atlanta”之类的内容更改为“Atlanta”。所以我想检查区域列中的区域是否与区域字符串中的区域匹配。
-
试试下面编辑的答案。
标签: python-3.x pandas dataframe filtering