我有一个数据框,其中的一列包含一个日期时间戳(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
我该怎么做?
答案 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