有没有一种条件可以使用多种数据类型在Python中过滤列?

时间:2019-01-30 17:15:14

标签: python dataframe

我正在尝试根据数字和分类数据类型过滤列,然后为每个回归问题创建单独的列表。

问题是我无法使用.isin(['object','O'])

列列表:

制造商157非空对象

157型非空对象

Sales_in_thousands 157 non-null float64

four_year_resale_value 121非空float64

Vehicle_type 157非空对象

千个价格155非空float64

Engine_size 156非空float64

马力156非空float64

Wheelbase 156非空float64

宽度156非空float64

Latest_Launch 157个非空对象

Power_perf_factor 155非空float64

我想使用.isin([])来完成此操作,因为可以在列表中传递多个选项,但是它不起作用

下面的代码不起作用,我正在寻找该代码的解决方案

df.dtypes.loc[df.dtypes.isin(['object','O'])]

下面的代码可以工作,但是我不喜欢这种写代码的方式,好像有太多的选择,那么这段代码会变得不必要的冗长和混乱

df.dtypes.loc[(df.dtypes == ('object')) | (df.dtypes == ('O'))] 

输出:

制造商对象

模型对象

Vehicle_type对象

最新测试对象

1 个答案:

答案 0 :(得分:0)

select_dtypes

确实有一个方便的帮助程序功能,可用于您要尝试的操作
df.select_dtypes(include=['O'])

df.select_dtypes(exclude=['O'])