gpt4 book ai didi

python - 如何在 pandas (python) 中将时间对象转换为日期时间格式?

转载 作者:行者123 更新时间:2023-12-01 01:47:27 24 4
gpt4 key购买 nike

我是 pandas 新手,正在练习一些基本功能。我有一个 CSV 文件,其中包含某个日期的每分钟的一些数据。读取 CSV 后,df.head() 给出以下结果:

        Time            C1  C2  C3  C4  C5  C6
0 2016-05-25 03:15:00 0 0 0 0 0 0
1 2016-05-25 03:16:00 0 0 0 0 0 0
2 2016-05-25 03:17:00 0 0 2 0 0 0
3 2016-05-25 03:18:00 0 0 0 5 0 2
4 2016-05-25 03:19:00 0 0 0 0 0 5

我使用了pd.read_csvparse_dates选项。因此,时间采用 datetime64[ns] 格式。因为日期是相同的,所以我不想在我的专栏上显示它。所以,我使用

df['Time']=df['Time'].dt.time

它执行了我想要的操作,但将格式更改为 object,这是我不想要的。根据其他一些答案的建议,我执行了以下操作:

df['Time']=pd.to_datetime(df['Time'], format="%H:%M:%S")
df['Time'].head()

0 1900-01-01 03:15:00
1 1900-01-01 03:16:00
2 1900-01-01 03:17:00
3 1900-01-01 03:18:00
4 1900-01-01 03:19:00
Name: Time, dtype: datetime64[ns]

这将该列转换为datetime64[ns],但添加了一个额外的日期。是否可以仅将时间转换为 datetime64[ns]

最佳答案

不,这是不可能的。对于日期时间总是需要日期。

但是如果需要与时间一起工作,更好的是使用 timedeltastrftime 提供对于带有 to_timedelta 的字符串 HH:MM:SS :

df['Time'] = pd.to_timedelta(df['Time'].dt.strftime('%H:%M:%S'))
print (df)
Time C1 C2 C3 C4 C5 C6
0 03:15:00 0 0 0 0 0 0
1 03:16:00 0 0 0 0 0 0
2 03:17:00 0 0 2 0 0 0
3 03:18:00 0 0 0 5 0 2
4 03:19:00 0 0 0 0 0 5

print (df.dtypes)
Time timedelta64[ns]
C1 int64
C2 int64
C3 int64
C4 int64
C5 int64
C6 int64
dtype: object

关于python - 如何在 pandas (python) 中将时间对象转换为日期时间格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51116009/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com