【发布时间】:2019-04-10 23:29:22
【问题描述】:
我正在尝试用仅包含 contains() 方法中的字符串的行替换 DataFrame london(这是另一个 no_eco 的副本)中的列 'let'。代码如下:
london = no_eco
london.loc[:,'let'] = london.loc[:,'let'].str.contains('E' or 'D' or 'F' or 'G' or 'H' or 'I' or 'J')
london.loc[:,'let'] = london.loc[:,'let'][london.loc[:,'let']]
london = london.dropna(subset = ['let'])
print(london)
代码有效,我删除了不符合字符串的行,但是我收到以下警告:
C:\Users\gerardchurch\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\indexing.py:543: SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead
See the caveats in the documentation: http://pandas.pydata.org/pandas- docs/stable/indexing.html#indexing-view-versus-copy
在查看文档时,我仍然无法理解我做错了什么。
可以继续使用变量london 还是我以后会遇到问题?
谢谢。
【问题讨论】:
-
将
london.loc[:,'distId'][london.loc[:,'distId']]更改为london.loc[london.loc[:,'distId'],'distId'],警告就会消失。不确定在这种情况下它是否特别有害,因为您是在作业的 RHS 上进行的。
标签: python pandas dataframe indexing chained-assignment