gpt4 book ai didi

python - 如何判断 Pandas 数据框中的列是否属于日期时间类型?如何判断列是否为数字?

转载 作者:太空狗 更新时间:2023-10-29 17:03:42 24 4
gpt4 key购买 nike

我正在尝试根据它们是否属于日期类型来过滤 pandas 数据框中的列。我可以找出哪些是,但随后必须解析该输出或手动选择列。我想自动选择日期列。这是我到目前为止的示例 - 在这种情况下我只想选择“date_col”列。

import pandas as pd
df = pd.DataFrame([['Feb-2017', 1, 2],
['Mar-2017', 1, 2],
['Apr-2017', 1, 2],
['May-2017', 1, 2]],
columns=['date_str', 'col1', 'col2'])
df['date_col'] = pd.to_datetime(df['date_str'])
df.dtypes

输出:

date_str            object
col1 int64
col2 int64
date_col datetime64[ns]
dtype: object

最佳答案

我刚刚遇到这个问题,发现@charlie-haley 的回答对于我的用例来说不够笼统。特别是 np.datetime64 似乎与 datetime64[ns, UTC] 不匹配。

df['date_col'] = pd.to_datetime(df['date_str'], utc=True)
print(df.date_str.dtype) # datetime64[ns, UTC]

您还可以扩展 dtypes 列表以包含其他类型,但这似乎不是 future 兼容性的好解决方案,所以我最终使用了 pandas api 中的 is_datetime64_any_dtype 函数.

在:

from pandas.api.types import is_datetime64_any_dtype as is_datetime

df[[column for column in df.columns if is_datetime(df[column])]]

输出:

                   date_col
0 2017-02-01 00:00:00+00:00
1 2017-03-01 00:00:00+00:00
2 2017-04-01 00:00:00+00:00
3 2017-05-01 00:00:00+00:00

关于python - 如何判断 Pandas 数据框中的列是否属于日期时间类型?如何判断列是否为数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43214204/

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