一个列在熊猫中只有日期或日期时间吗?

时间:2017-03-24 20:49:14

标签: pandas numpy

我正在尝试编写一个函数来评估pandas DataFrame中的列是否只有日期或日期时间,以便决定是否在外部数据库中创建日期或时间戳列。

DataFrame中的所有日期都存储为相同的类型,但仅限日期的值将没有时间组件

有没有一种有效的方法呢?我不想循环遍历python代码中的每一列

1 个答案:

答案 0 :(得分:1)

我要检查datetime列是否等于其date组件

考虑数据框df

df = pd.DataFrame(dict(
        Date=pd.to_datetime(
            ['2017-03-01',
             '2017-03-01 00:00:00',
             '2017-03-01 00:00:01',
             '2017-03-01 10:30:00'])))

df

                 Date
0 2017-03-01 00:00:00
1 2017-03-01 00:00:00
2 2017-03-01 00:00:01
3 2017-03-01 10:30:00

我们可以看到前两行不需要时间组件,但最后两行不需要时间组件。我们可以用

查看
df.Date == pd.to_datetime(df.Date.dt.date)

0     True
1     True
2    False
3    False
Name: Date, dtype: bool

因此我们可以检查整个列是否需要时间组件

(d1.Date == pd.to_datetime(d1.Date.dt.date)).all()

False

在这种情况下,False表示我们应该使用datetime