首页 > 解决方案 > read_json 未将列显示为 datetime64[ns]

问题描述

因此,在以 json 格式保存后,我很难将 pandas 数据框的一列读取为 datetime64[ns] dtype。我已经尝试了我在网上看到的几乎所有东西,pd.datetime(coerce, format), astype(datetime64[ns]), dateformat = 'iso' 等。这很奇怪,也很令人沮丧,因为我的所有其他数据帧都使用使用 dtype 作为 datetime64[ns] 可以正确读取日期列并保存为 json 文件。我真的很感激一些帮助

这是我创建数据框的代码的最后几行及其返回的内容:

player = pd.DataFrame(full, index = list(range(len(full))), columns = ['Name', 'Handedness', 'Height', 'Bday'])
player.Height = player.Height.str[:-2]
player.Height = pd.to_numeric(player.Height)
player.Bday = pd.to_datetime(player.Bday, format = '%d/%m/%Y')
player = player.reset_index(drop = True)

player.to_json(f'../../Datasets/Singles_players/Player_Traits/{Event}_players.json', date_format = 'iso')

print(player.info())
print(player.head())

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 25 entries, 0 to 24
Data columns (total 4 columns):
 #   Column      Non-Null Count  Dtype         
---  ------      --------------  -----         
 0   Name        25 non-null     object        
 1   Handedness  25 non-null     object        
 2   Height      25 non-null     float64       
 3   Bday        25 non-null     datetime64[ns]
dtypes: datetime64[ns](1), float64(1), object(2)
memory usage: 928.0+ bytes
None
                       Name Handedness  Height       Bday
0              KENTO MOMOTA       Left   175.0 1994-09-01
1            VIKTOR AXELSEN      Right   194.0 1994-01-04
2           ANDERS ANTONSEN      Right   183.0 1997-04-27
3            CHOU TIEN CHEN      Right   180.0 1990-01-08
4  ANTHONY SINISUKA GINTING      Right   171.0 1996-05-11

一切都很好,但是当我阅读文件时会发生什么:

player = pd.read_json('../Datasets/Singles_Players/Player_Traits/MS_players.json')

print(player.info())
print(player.head())

<class 'pandas.core.frame.DataFrame'>
Int64Index: 25 entries, 0 to 24
Data columns (total 4 columns):
 #   Column      Non-Null Count  Dtype 
---  ------      --------------  ----- 
 0   Name        25 non-null     object
 1   Handedness  25 non-null     object
 2   Height      25 non-null     int64 
 3   Bday        25 non-null     object
dtypes: int64(1), object(3)
memory usage: 1000.0+ bytes
None
                       Name Handedness  Height                      Bday
0              KENTO MOMOTA       Left     175  1994-09-01T00:00:00.000Z
1            VIKTOR AXELSEN      Right     194  1994-01-04T00:00:00.000Z
2           ANDERS ANTONSEN      Right     183  1997-04-27T00:00:00.000Z
3            CHOU TIEN CHEN      Right     180  1990-01-08T00:00:00.000Z
4  ANTHONY SINISUKA GINTING      Right     171  1996-05-11T00:00:00.000Z

标签: pythonjsonpandasdatetimedatetime-format

解决方案


推荐阅读