Pandas:键入日期时间分钟失败

nr9pn0ug  于 2023-01-01  发布在  其他
关注(0)|答案(2)|浏览(85)

我用的是Pandas1.5.2。
我有一列时间戳存储在Pandas Dataframe 。
第一个月

0    2017-07-11 09:33:14.819
1    2017-07-11 09:33:14.819
2    2017-07-11 09:33:14.819
3    2017-07-11 09:33:14.819
4    2017-07-11 09:33:14.820
         
5   2017-07-11 16:20:52.463
6   2017-07-11 16:20:52.463
7   2017-07-11 16:20:52.463
8   2017-07-11 16:20:52.464
9   2017-07-11 16:20:54.984

我过去可以通过df['Timestamp'].astype('datetime64[m]')将时间戳转换为'%Y-%m-%d %H:%M'。但现在这不起作用,返回原始列。

0    2017-07-11 09:33
1    2017-07-11 09:33
2    2017-07-11 09:33
3    2017-07-11 09:33
4    2017-07-11 09:33
         
5   2017-07-11 16:20
6   2017-07-11 16:20
7   2017-07-11 16:20
8   2017-07-11 16:20
9   2017-07-11 16:20
cnjp1d6j

cnjp1d6j1#

我想您可以使用strftimeto_datetime包。

df['Timestamp'] = df['Timestamp'].dt.strftime('%Y-%m-%d %H:%M')

或者

df['Timestamp'] = pd.to_datetime(df['Timestamp']).dt.strftime('%Y-%m-%d %H:%M')
efzxgjgh

efzxgjgh2#

可以按如下方式更改列的格式:

import pandas as pd

df = pd.DataFrame({
    'Timestamp': ['2017-07-11 09:33:14.819', '2017-07-11 09:33:14.819']
})
print(df)
"""
                 Timestamp
0  2017-07-11 09:33:14.819
1  2017-07-11 09:33:14.819
"""

df['Timestamp'] = df['Timestamp'].astype('datetime64[m]')
print(df)
"""
            Timestamp
0 2017-07-11 09:33:00
1 2017-07-11 09:33:00
"""

如果要删除第二种格式,可以将该值转换为str,并使用slicing仅获取所需的部分,如下所示:

df['Timestamp'] = df['Timestamp'].astype(str).str[0:16]
print(df)
"""
          Timestamp
0  2017-07-11 09:33
1  2017-07-11 09:33
"""

相关问题