使用Python Pandas计算就寝时间最值遇到的问题求助
问题描述
我是Python和Pandas的新手,若有疏漏还请见谅。我正在用手表追踪自己的就寝习惯,以了解通常的就寝时间。以下是我的示例数据(仅为完整数据的节选):
import pandas as pd df = pd.DataFrame( { "Date": ["16/10/2022", "17/10/2022", "18/10/2022", "19/10/2022"], "Time": ["2:15:00 AM", "11:30:00 PM", "12:20:00 AM", "1:15:00 AM"], } )
我尝试将数据转换为datetime对象后,使用describe函数找出最早就寝时间(最小值)和最晚就寝时间(最大值):
df["Date and Time"] = df["Date"] + " " + df["Time"] df["Date and Time"] = pd.to_datetime(df["Date and Time"])
但Pandas给出的最值统计结果如下:
| Date and Time | |
|---|---|
| count | 4 |
| mean | 2022-10-17 18:50:00 |
| min | 2022-10-16 02:15:00 |
| 25% | 2022-10-17 12:11:15 |
| 50% | 2022-10-17 23:55:00 |
| 75% | 2022-10-18 06:33:45 |
| max | 2022-10-19 01:15:00 |
我期望最小值为11:30 PM,而非2:15:00 AM;最大值为2:15:00 AM,而非1:15:00 AM。
若不合并"Time"和"Date"列,按以下方式处理:
df["Date"] = pd.to_datetime(df["Date"]) df["Time"] = pd.to_datetime(df["Time"]) df.describe(datetime_is_numeric=True)
得到的输出如下:
| Date | Time | |
|---|---|---|
| count | 4 | 4 |
| mean | 2022-10-17 12:00:00 | 2022-10-20 06:50:00 |
| min | 2022-10-16 00:00:00 | 2022-10-20 00:20:00 |
| 25% | 2022-10-16 18:00:00 | 2022-10-20 01:01:15 |
| 50% | 2022-10-17 12:00:00 | 2022-10-20 01:45:00 |
| 75% | 2022-10-18 06:00:00 | 2022-10-20 07:33:45 |
| max | 2022-10-19 00:00:00 | 2022-10-20 23:30:00 |
恳请各位提供帮助,非常感谢。
内容的提问来源于stack exchange,提问作者Cranberry8344
相关产品推荐
相关产品推荐

