python - Pandas :强制 'minute' 和 'seconds' 为零

标签 python pandas dataframe

我有一个专栏:line1 [ 'daytime' ]

此列的格式如下:

2018-02-07 17:40:29
2018-02-07 17:41:15
2018-02-07 17:41:55
2018-02-07 17:42:54
2018-02-07 17:43:44
2018-02-07 18:02:54
2018-02-07 18:03:44
Name: daytime, Length: 174859, dtype: datetime64[ns]

我想得到:

2018-02-07 17:00:00
2018-02-07 17:00:00
2018-02-07 17:00:00
2018-02-07 17:00:00
2018-02-07 17:00:00
2018-02-07 18:00:00
2018-02-07 18:00:00

我想改变整个列

最佳答案

使用 astype 转换为以小时为单位的 numpy

df.daytime.astype('datetime64[h]')

#                 dates
# 0 2018-02-07 17:00:00
# 1 2018-02-07 17:00:00
# 2 2018-02-07 17:00:00
# 3 2018-02-07 17:00:00
# 4 2018-02-07 17:00:00
# 5 2018-02-07 18:00:00
# 6 2018-02-07 18:00:00

提供的解决方案之间的一些速度比较:

datetime = pd.date_range(start='2020-01-01', freq='200S', periods=100)
df = pd.DataFrame(dict(daytime=datetime))

%%timeit
df.daytime.dt.to_period('H')
# 826 µs ± 355 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

%%timeit
x = df.daytime.dt.floor('H')
# 774 µs ± 247 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

%%timeit
df.daytime.astype('datetime64[h]')
# 190 µs ± 12.7 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

有 1k 条记录:

datetime = pd.date_range(start='2020-01-01', freq='200S', periods=1000)
df = pd.DataFrame(dict(daytime=datetime))

%%timeit
df.daytime.dt.to_period('H')
# 991 µs ± 312 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

%%timeit
x = df.daytime.dt.floor('H')
# 825 µs ± 203 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

%%timeit
df.daytime.astype('datetime64[h]')
# 237 µs ± 8.02 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

关于python - Pandas :强制 'minute' 和 'seconds' 为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62543350/

相关文章:

python - Flask-OAuthlib 从 token 处理程序获取 access_token

python - with 语句 - Python 2.5 的反向移植

python - matplotlib 和 pandas 中的半年颜色条

python - pandas 版本中的索引错误 >= 0.20

python - astype ('float' ) 更改数据,而不仅仅是数据类型

python - 使用 numpy 数组中的值从 DataFrame 创建 Pandas DataFrame 以访问数据帧索引

python - 不小心删除了 dist-packages 文件夹,现在该怎么办?

python - nltk 语言模型(ngram)从上下文计算一个词的概率

r - rbind 的内存高效替代方案 - 就地 rbind?

python - 如何从特定格式的 DataFrame 创建稀疏矩阵