gpt4 book ai didi

python - Pandas 与 json 之间的时间戳

转载 作者:行者123 更新时间:2023-12-01 08:11:45 25 4
gpt4 key购买 nike

对象无法序列化为 json,因此需要通过自定义 JsonEncoder 类进行转换或解析。

pandas Dataframe 有很多方法,例如 from_records 来读取 json 数据。然而,当您读回 json 数据时,它会以 int64 形式返回,而不是时间戳。

给 Pandas 剥皮的方法有很多种。读写 json 时保留数据结构的最佳方式是什么?

最佳答案

出于其值(value),我将 pandas 数据帧保存到 Postgres 数据库,并且我想保留时区索引。我使用以下代码:

class db_JsonEncodedDataFrameWithTimezone(db.TypeDecorator):
"""Enables JSON storage by encoding and decoding on the fly."""
impl = db.Text

def process_bind_param(self, value, dialect):
if value is not None and isinstance(value, pd.DataFrame):
timezone = value.index.tz.zone
df_json = value.to_json(orient="index")
data = {'timezone': timezone, 'df': df_json, 'index_name': value.index.name}
value = json.dumps(data)
return value

def process_result_value(self, value, dialect):
if value is not None:
data = json.loads(value)
df = pd.read_json(data['df'], orient="index")
df.index = df.index.tz_localize('UTC')
df.index = df.index.tz_convert(data['timezone'])
df.index.name = data['index_name']
value = df
return value

def compare_values(self, x, y):
from pandas.util.testing import assert_frame_equal
try:
assert_frame_equal(x, y, check_names=True, check_like=True)
return True
except (AssertionError, ValueError, TypeError):
return False

关于python - Pandas 与 json 之间的时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55205436/

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