给定df
具有不同数据类型的 Pandas ,df.select_dtypes
对于仅保留所需列或删除特定应用程序不需要的列非常有用。
但是,似乎无法string
使用这种方法来解决dtype。
从文档(强调我的):
ValueError
如果 include 和 exclude 都为空
如果 include 和 exclude 有重叠元素
如果传入任何类型的字符串 dtype。
和
要选择字符串,您必须使用对象 dtype,但请注意,这将返回所有对象 dtype 列
实际上, usingdf.select_dtypes(exclude=['str'])
会引发错误(尽管它是 aTypeError
而不是ValueError
docs 声称的 a)并且 usingdf.select_dtypes(exclude=['object'])
会删除所有object
列,而不仅仅是string
列。
给出df
这样的:
df = pd.DataFrame({'int_col':[0,1,2,3,4],
'dict_col':[dict() for i in range(5)],
'str_col':list('abcde')})
Run Code Online (Sandbox Code Playgroud)
并考虑到
df.dtypes
Run Code Online (Sandbox Code Playgroud)
是object
两个str_col
和dict_col
:
排除或包含所有字符串列的最佳方法是什么?