第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

與 json 之間的 Pandas 時間戳

與 json 之間的 Pandas 時間戳

湖上湖 2021-12-08 10:21:48
對象無法序列化為 json,因此需要通過自定義 JsonEncoder 類進行轉換或解析。pandas Dataframe 有很多方法,比如from_records讀取 json 數據。然而,當您讀回該 json 數據時,它返回為 int64 而不是時間戳。有很多方法可以在熊貓中給貓剝皮。讀寫json時保留數據結構的最佳方法是什么?
查看完整描述

2 回答

?
繁花如伊

TA貢獻2012條經驗 獲得超12個贊

為了它的價值,我將 Pandas 數據幀保存到 Postgres 數據庫,并且我想保留時區(qū)索引。我使用以下代碼:


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


查看完整回答
反對 回復 2021-12-08
?
MM們

TA貢獻1886條經驗 獲得超2個贊

如果我正確理解了您的問題,那么您正在尋找一種保留數據幀數據類型的序列化方式。

問題是交換格式在內部使用的類型很少:只有 csv 的字符串、json 的字符串和數字。當然,有一些方法可以在讀取時提供格式提示(csv 中日期列的日期格式),并且在提取后通常很容易轉換回正確的類型,我認為您希望采用更自然的方式。正如 Attack68 所建議的那樣,您可以使用數據庫,但例如 SQLite 數據庫將關閉,因為它沒有內部日期類型。

恕我直言,一個簡單的方法是依靠好的舊pickle模塊。畢竟,數據幀是一個包含其他 Python 對象的 Python 對象,所以 pickle 擅長序列化它。唯一要記住的一點是,在反序列化時,必須在調用之前導入熊貓pickle.load

但是我剛剛用包含各種數據類型的(小)數據幀進行了測試,pickle 非常適合正確保存和恢復它們。


查看完整回答
反對 回復 2021-12-08
  • 2 回答
  • 0 關注
  • 229 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號