簡體   English   中英

將嵌套的類似字典的 txt 文件讀入 Pandas 數據幀

[英]Reading nested dictionary-like txt file into a Pandas dataframe

這里是一個新的 python 人,並且在以下方面沒有取得太大的成功。

我有一個 txt 文件,其數據格式如下:

{
  "$type" : "TableInstance",
  "$version" : 1,
  "Instance" : "InstanceName",
  "ColumnAliases" : [ "", "", ],
  "ColumnNames" : [ "keyName", "dateName"],
  "ColumnData" : [ {
    "type" : "ColumnData1",
    "Strings" : [key1, key2],]
  }, {
    "type" : "ColumnData2",
    "Strings" : [date1, date2]}]
}

我想讀入一個數據幀,使其格式為:

[   keyName     dateName
    key1        date1
    key2        date1 ]

有沒有一種簡單的方法可以做到這一點?

這對你有用嗎?

dict = {
  "$type" : "TableInstance",
  "$version" : 1,
  "Instance" : "InstanceName",
  "ColumnAliases" : [ "", "", ],
  "ColumnNames" : [ "keyName", "dateName"],
  "ColumnData" : [ {
    "type" : "ColumnData1",
    "Strings" : ['key1', 'key2']
  }, {
    "type" : "ColumnData2",
    "Strings" : ['date1', 'date2']}]
}

df = pd.DataFrame({dict['ColumnNames'][0]:dict['ColumnData'][0]['Strings'], dict['ColumnNames'][1]:dict['ColumnData'][1]['Strings']})

看起來您將序列化的python對象存儲在文件中。 因此,您可以通過 pickle 的幫助反序列化 Python 對象,然后您可以根據您的要求解析該對象。

import pickle
import pandas as pd

filePath = 'test.txt'
obj = pd.read_pickle(filePath)
#obj = pickle.load(open(filePath, "rb"))
df = pd.DataFrame({obj['ColumnNames'][0]:obj['ColumnData'][0]['Strings'], obj['ColumnNames'][1]:obj['ColumnData'][1]['Strings']})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM