Python 使用pandas获取datetime类型的所有列?

Python 使用pandas获取datetime类型的所有列?,python,pandas,Python,Pandas,我有一个巨大的数据框,其中的列从来没有按顺序排列过,我也不知道它们的名称 如何查找所有日期时间类型的列 大多数在线解决方案,海报知道专栏的名称,所以我有点麻烦,因为我不知道。在这种情况下我能做什么?您可以使用,并且只包括datetime64类型 df.select_dtypes(include=['datetime64']) 演示 >>> df dts1 dts2 ints 0 2012-01-01 2004-01-01 0 1 2

我有一个巨大的数据框,其中的列从来没有按顺序排列过,我也不知道它们的名称

如何查找所有日期时间类型的列

大多数在线解决方案,海报知道专栏的名称,所以我有点麻烦,因为我不知道。在这种情况下我能做什么?

您可以使用,并且只包括datetime64类型

df.select_dtypes(include=['datetime64'])
演示

>>> df
         dts1       dts2  ints
0  2012-01-01 2004-01-01     0
1  2012-01-02 2004-01-02     1
2  2012-01-03 2004-01-03     2
..        ...        ...   ...
97 2012-04-07 2004-04-07    97
98 2012-04-08 2004-04-08    98
99 2012-04-09 2004-04-09    99

>>> df.select_dtypes(include=['datetime64'])
         dts1       dts2
0  2012-01-01 2004-01-01
1  2012-01-02 2004-01-02
2  2012-01-03 2004-01-03
..        ...        ...
97 2012-04-07 2004-04-07
98 2012-04-08 2004-04-08
99 2012-04-09 2004-04-09

由于pandas数据帧的每一列都是pandas系列,因此只需在列名列表中迭代,并有条件地检查datetime的
Series.dtype
(通常为datetime64[ns]):

或作为列表理解:

[col for col in df.columns if df[col].dtype == 'datetime64[ns]']
或作为串联过滤器:

df.dtypes[df.dtypes=='datetime64[ns]']

这些专栏还有什么?其他类型<代码>NaN?你能添加一些示例数据吗?我有100多列,有些列只是整数,有些是布尔值,有些是字母数字。datetime列没有NaN。(只有两个,我只想找一个)。让我们假设没有楠的。我在超过10个数据集中的样本中没有发现任何数据。如果使用数字列,则与此相关:
df.dtypes[df.dtypes=='datetime64[ns]']