如何让 Pandas 按数据类型选择列?

Python大咖谈

共 1369字,需浏览 3分钟

 · 2021-05-12

Pandas 百问百答第 014 篇。

有时候,df 里包含了不同的数据类型,比如,文本、日期、整数、小数,如果需要筛选出某一类型的几列,怎么整?

呆鸟也不卖关子,直接说, pandas 的 df 提供了 select_dtypes 函数,可以按数据类型选择 df 的列。该函数包含 includeexclude 参数:

  • include 表示包含哪种类型,输出结果是包含该类型的 df;

  • exclude 表示排除哪种类型,输出结果是不包含该类型的 df;

  • 包含或排除的类型可以是多种,用列表显示,如 include=['float64','int64']

示例代码:

df = pd.DataFrame({'a': [12] * 3,
                   'b': [TrueFalse] * 3,
                   'c': [1.02.0] * 3})

# 输出包含 bool 数据类型的列
df.select_dtypes(include='bool')

# 输出包含小数数据类型的列
df.select_dtypes(include=['float64'])

# 输出排除整数的列
df.select_dtypes(exclude=['int64'])

数据类型说明

  • 选择所有数字类型的列,用 np.number'number'

  • 选择字符串类型的列,必须用 object,注意,这将返回所有数据类型为 object 的列

  • 选择日期时间类型的列,用np.datetime64'datetime''datetime64'

  • 选择 timedelta 类型的列,用np.timedelta64'timedelta''timedelta64'

  • 选择 category 类型类别,用 'category'

  • 选择 datetimetz 类型的列,用'datetimetz''datetime64[ns, tz]'

好了,本篇比较简单,但也容易让人忽略,现在你知道怎么按数据类型选择 df 中的列了吗?

本文译自 pandas 官档,在官档中搜索 select_dtypes ,即可找到原文。

Groupby 分组后,如何合并列里的内容?

Groupby 分组后合并列内容 ~ 进一步优化

浏览 7
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报