溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么讀Json文件生成pandas數(shù)據(jù)框

發(fā)布時間:2022-08-26 10:13:52 來源:億速云 閱讀:120 作者:iii 欄目:開發(fā)技術(shù)

本文小編為大家詳細介紹“怎么讀Json文件生成pandas數(shù)據(jù)框”,內(nèi)容詳細,步驟清晰,細節(jié)處理妥當,希望這篇“怎么讀Json文件生成pandas數(shù)據(jù)框”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

前言

有時可能需要轉(zhuǎn)換json文件位pandas數(shù)據(jù)框。使用pandas內(nèi)置的read_json()函數(shù)很容易實現(xiàn)。

其語法如下:

read_json(‘path’, orient=’index’)

  • path: json文件的路徑

  • orient: json文件的格式描述,缺省是index,還有其他選型:split, records, columns, values。

下面通過幾個示例進行說明。

records格式

假設(shè)json文件my_file.json的格式如下:

[
   {
      "points": 25,
      "assists": 5
   },
   {
      "points": 12,
      "assists": 7
   },
   {
      "points": 15,
      "assists": 7
   },
   {
      "points": 19,
      "assists": 12
   }
]

我們使用pandas的函數(shù)read_json,只要只從orient參數(shù)位records:

# 加載json文件,生成pandas數(shù)據(jù)框
df = pd.read_json('data/json_file.json', orient='records')

# 查看數(shù)據(jù)框
print(df)

輸出結(jié)果:

   points  assists
0      25        5
1      12        7
2      15        7
3      19       12

index格式

假設(shè)json文件格式為:

{
   "0": {
      "points": 25,
      "assists": 5
   },
   "1": {
      "points": 12,
      "assists": 7
   },
   "2": {
      "points": 15,
      "assists": 7
   },
   "3": {
      "points": 19,
      "assists": 12
   }
}

與上面實現(xiàn)代碼一樣,僅需要修改orient=‘index’:

import pandas as pd

df = pd.read_json("data/my_file.json", orient='index')
print(df)

輸出結(jié)果:

   points  assists
0      25        5
1      12        7
2      15        7
3      19       12

columns 類型

假設(shè)json文件格式為:

{
   "points": {
      "0": 25,
      "1": 12,
      "2": 15,
      "3": 19
   },
   "assists": {
      "0": 5,
      "1": 7,
      "2": 7,
      "3": 12
   }
}

加載代碼修改orient參數(shù)為’columns’:

import pandas as pd

df = pd.read_json("data/my_file.json", orient='columns')

print(df)

結(jié)果與上面一致。

values格式

假設(shè)json文件代碼如下:

[
   [
      25,
      5
   ],
   [
      12,
      7
   ],
   [
      15,
      7
   ],
   [
      19,
      12
   ]
]

加載代碼如下:

import pandas as pd

df = pd.read_json("data/my_file.json", orient='values')

print(df)

輸出結(jié)果:

    0   1
0  25   5
1  12   7
2  15   7
3  19  12

split 參數(shù)示例

下面看split參數(shù)示例:

import pandas as pd

# 示例數(shù)據(jù)
data =  '{"columns":["col 1","col 2"], "index":["row 1","row 2"], "data":[["a","b"],["c","d"]]}'
df = pd.read_json(data, orient='split')

print(df)

輸出交叉表形式結(jié)果:

      col 1 col 2
row 1     a     b
row 2     c     d

如果不指定index,則行自動生成序號:

import pandas as pd

data =  '{"columns":["col 1","col 2"],  "data":[["a","b"],["c","d"]]}'
df = pd.read_json(data, orient='split')

print(df)

輸出結(jié)果:

  col 1 col 2
0     a     b
1     c     d

壓縮與編碼

使用compression參數(shù)可以解壓并載入json文件,參數(shù)選型有:‘zip’, ‘gzip’, ‘bz2’, ‘zstd’。如果指定zip,則確保文件為zip文件格式,None表示不解壓。

使用 encoding 指定自定義編碼,缺省為 UTF-8 編碼。

假設(shè)my_file.zip壓縮文件格式為:

[
   [
      25,
      5
   ],
   [
      12,
      7
   ],
   [
      15,
      7
   ],
   [
      19,
      12
   ]
]

載入代碼:

import pandas as pd
df = pd.read_json("data/my_file.zip", orient='values', compression='zip')
print(df)

讀到這里,這篇“怎么讀Json文件生成pandas數(shù)據(jù)框”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI