簡體   English   中英

使用Pandas Dataframe將Nested Json格式/文件轉換為平面文件

[英]Converting the Nested Json format/ file into Flat files using Pandas Dataframe

我在這里面臨一個問題。 我有嵌套的數據集

 {
    "members": [
      {
        "firstname": "John", 
        "lastname": "Doe",
        "orgname": "Anon",
        "phone": "916-555-1234",
        "mobile": "",
      },
      {
        "firstname": "Jane",
        "lastname": "Doe",
        "orgname": "Anon",
        "phone": "916-555-4321",
        "mobile": "916-555-7890",
      },
    "teamname": "1",
    "team_size": "5",
    "team_status": "low"
    }

另一個不嵌套

{
"members": [
  {
    "firstname": "John", 
    "lastname": "Doe",
    "orgname": "Anon",
    "phone": "916-555-1234",
    "mobile": "",
  },
"teamname": "1",
"team_size": "5",
"team_status": "low"
}

我已經通過代碼處理了嵌套

df2 = pd.DataFrame.from_dict(json_normalize(json_file2),orient ='columns')

打印(df2)

df3 = pd.concat([df2中x的[json_normalize(x)[[members]]。values.tolist()],keys = df2.index)

df3 = df2.drop('members',1).join(df3.reset_index(level = 1,drop = True))。reset_index(drop = True)

我收到錯誤消息,說“說“ TypeError:'float'對象不可下標””

您能幫我解決這個問題嗎?

{
"teams": [
{

"members": [
  {
    "firstname": "John", 
    "lastname": "Doe",
    "orgname": "Anon",
    "phone": "916-555-1234",
    "mobile": "",
  },
  {
    "firstname": "Jane",
    "lastname": "Doe",
    "orgname": "Anon",
    "phone": "916-555-4321",
    "mobile": "916-555-7890",
  },
"teamname": "1",
"team_size": "5",
"team_status": "low"
},
{

"members": [
  {
    "firstname": "Mickey",
    "lastname": "Moose",
    "orgname": "Moosers",
    "phone": "916-555-0000",
    "mobile": "916-555-1111",
  },
"teamname": "2",
"team_size": "5",
"team_status": "low"
]
}       
]

}

對我來說:

d1 = {
    "members": [
      {
        "firstname": "John", 
        "lastname": "Doe",
        "orgname": "Anon",
        "phone": "916-555-1234",
        "mobile": "",
      },
      {
        "firstname": "Jane",
        "lastname": "Doe",
        "orgname": "Anon",
        "phone": "916-555-4321",
        "mobile": "916-555-7890",
      }],
    "teamname": "1",
    "team_size": "5",
    "team_status": "low"
    }

d2 = {
"members": [
  {
    "firstname": "John", 
    "lastname": "Doe",
    "orgname": "Anon",
    "phone": "916-555-1234",
    "mobile": "",
  }],
"teamname": "1",
"team_size": "5",
"team_status": "low"
}

df1 = json_normalize(d1, 'members', ['team_size', 'team_status','teamname'])
print (df1)
  firstname lastname        mobile orgname         phone team_size teamname  \
0      John      Doe                  Anon  916-555-1234         5        1   
1      Jane      Doe  916-555-7890    Anon  916-555-4321         5        1   

  team_status  
0         low  
1         low  

df2 = json_normalize(d2, 'members', ['team_size', 'team_status','teamname'])
print (df2)
  firstname lastname mobile orgname         phone team_size teamname  \
0      John      Doe           Anon  916-555-1234         5        1   

  team_status  
0         low  

暫無
暫無

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

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