gpt4 book ai didi

python - pandas 中 drop 和 select_dtype 的区别

转载 作者:太空宇宙 更新时间:2023-11-04 04:28:30 25 4
gpt4 key购买 nike

如果在“search”列中找到字符串“something”,这两种删除行的方法有什么区别?

第一种方法:

mydata = mydata.set_index("search")
mydata = mydata.drop("something", axis=0)

这个方法看起来很简单,也很容易理解。

第二种方法:

mydata = mydata[~mydata.select_dtypes(['object']).eq('something').any(1)]

我真的不知道这个方法是如何工作的。在此行中的何处指定删除/删除该行?为什么它使用“对象”而不是“搜索”? “~”代表什么?我在文档中找不到它。

最佳答案

您的两种方法相同。我们分两部分来看第二种方法。

第 1 步:通过 select_dtypes 子集数据帧

mydata.select_dtypes(['object']) 过滤您的数据框,仅包含具有 object dtype 的系列。您可以通过 mydata.dtypes 提取每个系列的 dtype。通常,非数字系列将具有 object dtype,它表示一个指针序列,类似于 list

在这种情况下,只有当 search 系列是唯一的 object dtype 系列时,您的两个方法才会对齐。

第 2 步:通过 eq

测试相等性

由于第 1 步返回一个 dataframe,即使它只包含一个系列,pd.DataFrame.eq 也会返回一个 bool 值的 dataframe。

第 3 步:通过 any

逐行测试任何 True

接下来您的第二个方法检查是否有任何值是 True row-wise (axis=1)。同样,如果您唯一的 object 系列是 search,那么这等同于您的第一个方法。

如果您有多个 object 系列,那么您的两个方法可能不会对齐,因为一行可能由于 another 系列等于 'something 而被排除'.

关于python - pandas 中 drop 和 select_dtype 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53098612/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com