如果给定列中的值不包含在列表中,则删除 pandas 数据框行
Deleting pandas dataframe rows if value in given column not contained in a list
我有一个名为 df
的 pandas 数据框,其中包含多个列和一个 df['MY STATE']
列。我的目标是从数据框中删除不包含美国各州的所有行。我想通过将单元格中的值与包含所有州缩写的 pandas 系列进行比较来做到这一点。我见过人们使用类似下面的东西来清理数据框:
df = df[df['COST'] <= 0]
但是我需要的东西(如下)不起作用
df = df[df['MY STATE'] not in states['Abbreviation'].values]
有没有办法简单地做到这一点?
我读到 df.query()
可以用来做这样的事情,但我还没有找到一个例子,并且还读到 df.query()
不能在有 space 在列名中。
谢谢,
迈克尔
IIUC 您可以将 isin
与逆运算符一起使用 ~
:
df = df[~df['MY STATE'].isin(states['Abbreviation'].values)]
我有一个名为 df
的 pandas 数据框,其中包含多个列和一个 df['MY STATE']
列。我的目标是从数据框中删除不包含美国各州的所有行。我想通过将单元格中的值与包含所有州缩写的 pandas 系列进行比较来做到这一点。我见过人们使用类似下面的东西来清理数据框:
df = df[df['COST'] <= 0]
但是我需要的东西(如下)不起作用
df = df[df['MY STATE'] not in states['Abbreviation'].values]
有没有办法简单地做到这一点?
我读到 df.query()
可以用来做这样的事情,但我还没有找到一个例子,并且还读到 df.query()
不能在有 space 在列名中。
谢谢,
迈克尔
IIUC 您可以将 isin
与逆运算符一起使用 ~
:
df = df[~df['MY STATE'].isin(states['Abbreviation'].values)]