Python-遍历数据框行以从日期时间戳记中删除时间

时间:2019-11-07 19:41:52

标签: python pandas dataframe datetime

我有一个数据框,其中的一列包含一个日期时间戳(dtype:datetime64 [ns]):

@echo off

set SFVCHECK="C:\dont_alter\pure-sfv.exe"
cd %1
set errorlevel=0
%SFVCHECK% -t -i
if errorlevel 10 (
    echo Different CRC or a missing file...
    pause
    exit /B %errorlevel%
    )
if errorlevel 11 (
    echo Different CRC...
    pause
    exit /B %errorlevel%
    )
if errorlevel 12 (
    echo Missing file...
    pause
    exit /B %errorlevel%
    )
    ```

我想遍历每一行以删除“日期”的时间部分,以得到如下最终结果:

         Date          Docs
0 2016-06-01 04:48:23  45
1 2016-06-01 07:24:38  56
2 2016-07-01 08:27:26  87
3 2016-07-01 08:27:49  44

我该怎么做?

2 个答案:

答案 0 :(得分:1)

您需要使用dt.date

df['Date'] = df['Date'].dt.date

示例:

import pandas as pd
import numpy as np
rng = pd.date_range('2019-01-01 01:01:00', periods=365, freq='D')
df = pd.DataFrame(rng)
print(df[0])

看起来像:

0     2019-01-01 01:01:00
1     2019-01-02 01:01:00
2     2019-01-03 01:01:00

应用dt.date之后:

df[0] = df[0].dt.date
print(df[0])

看起来像:

0      2019-01-01
1      2019-01-02
2      2019-01-03

答案 1 :(得分:0)

使用dt.floor

df['Date'].dt.floor('D')

df['Date'].dt.normalize()

0   2016-06-01
1   2016-06-01
2   2016-07-01
3   2016-07-01
Name: Date, dtype: datetime64[ns]

注意:dt.floor返回datetime dtype
其中dt.date返回字符串dtype