熊猫df.index.round('D')持续24小时

时间:2018-10-11 08:22:39

标签: python pandas

给定一个以24小时日期时间为索引的数据框,将日期时间四舍五入为天似乎可以增加1200小时后的“天”。

这是另一个示例中的修改后的代码段,可生成随机数。

请注意,将输出日期时间索引“天”与四舍五入的“天”相比较。

import pandas as pd
import numpy as np
from datetime import datetime, timedelta

date_today = datetime.now()
days = pd.date_range(date_today, date_today + timedelta(1), freq='H')

np.random.seed(seed=1111)
data = np.random.randint(1, high=100, size=len(days))
df = pd.DataFrame({'test': days, 'col2': data})
df = df.set_index('test')

df['datetime_rounded']  = df.index.round('D')
print(df)
...
2018-10-12 10:19:29.907421    43       2018-10-12
2018-10-12 11:19:29.907421    77       2018-10-12
2018-10-12 12:19:29.907421    95       2018-10-13
2018-10-12 13:19:29.907421    79       2018-10-13

如何确保四舍五入的“天”在日期时间索引“天”的结尾处结束?

谢谢

1 个答案:

答案 0 :(得分:1)

预计round函数会四舍五入到最近的日期,因此12:00:00之后它会在第二天返回。

我认为您想要DatetimeIndex.floorDatetimeIndex.ceil

df['datetime_round']  = df.index.round('d')
df['datetime_floor']  = df.index.floor('d')
df['datetime_ceil']  = df.index.ceil('d')
print(df)
                            col2 datetime_round datetime_floor datetime_ceil
test                                                                        
2018-10-11 10:39:32.233426    29     2018-10-11     2018-10-11    2018-10-12
2018-10-11 11:39:32.233426    56     2018-10-11     2018-10-11    2018-10-12
2018-10-11 12:39:32.233426    82     2018-10-12     2018-10-11    2018-10-12
2018-10-11 13:39:32.233426    13     2018-10-12     2018-10-11    2018-10-12
2018-10-11 14:39:32.233426    35     2018-10-12     2018-10-11    2018-10-12
2018-10-11 15:39:32.233426    53     2018-10-12     2018-10-11    2018-10-12
2018-10-11 16:39:32.233426    25     2018-10-12     2018-10-11    2018-10-12
2018-10-11 17:39:32.233426    23     2018-10-12     2018-10-11    2018-10-12
2018-10-11 18:39:32.233426    21     2018-10-12     2018-10-11    2018-10-12
2018-10-11 19:39:32.233426    12     2018-10-12     2018-10-11    2018-10-12
2018-10-11 20:39:32.233426    15     2018-10-12     2018-10-11    2018-10-12
2018-10-11 21:39:32.233426     9     2018-10-12     2018-10-11    2018-10-12
2018-10-11 22:39:32.233426    13     2018-10-12     2018-10-11    2018-10-12
2018-10-11 23:39:32.233426    87     2018-10-12     2018-10-11    2018-10-12
2018-10-12 00:39:32.233426     9     2018-10-12     2018-10-12    2018-10-13
2018-10-12 01:39:32.233426    63     2018-10-12     2018-10-12    2018-10-13
2018-10-12 02:39:32.233426    62     2018-10-12     2018-10-12    2018-10-13
2018-10-12 03:39:32.233426    52     2018-10-12     2018-10-12    2018-10-13
2018-10-12 04:39:32.233426    43     2018-10-12     2018-10-12    2018-10-13
2018-10-12 05:39:32.233426    77     2018-10-12     2018-10-12    2018-10-13
2018-10-12 06:39:32.233426    95     2018-10-12     2018-10-12    2018-10-13
2018-10-12 07:39:32.233426    79     2018-10-12     2018-10-12    2018-10-13
2018-10-12 08:39:32.233426    77     2018-10-12     2018-10-12    2018-10-13
2018-10-12 09:39:32.233426     5     2018-10-12     2018-10-12    2018-10-13
2018-10-12 10:39:32.233426    78     2018-10-12     2018-10-12    2018-10-13
相关问题