从 Pandas DF 中删除包含列表中元素的行

edo101

假设我有一个 DF:

students = [ ('jack', 34, 'Sydeny' , 'Australia') ,
             ('Riti', 30, 'Delhi' , 'India' ) ,
             ('Vikas', 31, 'Mumbai' , 'India' ) ,
             ('Neelu', 32, 'Bangalore' , 'India' ) ,
             ('John', 16, 'New York' , 'US') ,
             ('Mike', 17, 'las vegas' , 'US')  ]

dfObj = pd.DataFrame(students, columns = ['Name' , 'Age', 'City' , 'Country'], index=['a', 'b', 'c' , 'd' , 'e' , 'f']) 

我有一个清单:

[Vikas, Neelu, Jack]

如何从我的 DF 中删除包含此列表中元素的行。我的谷歌搜索只向我展示了如何删除列索引或条件,比如列低于或高于某个整数值

特伦顿麦金尼
remove_words = ['Vikas', 'Neelu', 'Jack']

result = dfObj[~dfObj.Name.isin(remove_words)]

# display(result)

   Name  Age       City    Country
a  jack   34     Sydeny  Australia
b  Riti   30      Delhi      India
e  John   16   New York         US
f  Mike   17  las vegas         US

忽略大小写

  • 请注意,'Jack'这与'jack'
  • map remove_words小写 ( str.lower)
  • 铸造Name为小写与pandas.Series.str.lower做布尔检查时。
    • 这将使Name列中值的大小写保持不变。
# map the list of words to lowercase
remove_words = list(map(str.lower, ['Vikas', 'Neelu', 'Jack']))

# cast the Name column as lowercase when checking remove_words
result = dfObj[~dfObj.Name.str.lower().isin(remove_words)]

# display(result)
   Name  Age       City Country
b  Riti   30      Delhi   India
e  John   16   New York      US
f  Mike   17  las vegas      US

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章