"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > पांडा में नेस्टेड JSON ऑब्जेक्ट को डेटाफ़्रेम के रूप में कैसे प्रबंधित करें?

पांडा में नेस्टेड JSON ऑब्जेक्ट को डेटाफ़्रेम के रूप में कैसे प्रबंधित करें?

2024-11-08 को प्रकाशित
ब्राउज़ करें:345

How to Manage Nested JSON Objects as a DataFrame in Pandas?

नेस्टेड JSON को पांडा डेटाफ़्रेम के रूप में नेस्टेड ऑब्जेक्ट के साथ पढ़ना

नेस्टेड ऑब्जेक्ट वाले JSON डेटा से निपटते समय, इसे पायथन में कुशलता से हेरफेर करना महत्वपूर्ण है . पांडा इसे प्राप्त करने के लिए एक शक्तिशाली उपकरण प्रदान करता है - json_normalize। ]

जेसन आयात करें पांडा को पीडी के रूप में आयात करें डेटा_फ़ाइल के रूप में खुले ('myJson.json') के साथ: डेटा = json.load(data_file) df = pd.json_normalize(डेटा, 'स्थान', ['दिनांक', 'संख्या', 'नाम'], रिकॉर्ड_उपसर्ग='स्थान_') print(df)यह विस्तारित कॉलम के साथ एक डेटाफ्रेम बनाएगा:

locations_arrTimelocations_arrTimeDiffMinlocations_depTime \ 0 06:32 1 06:37 1 06:40 2 08:24 1 स्थान_depTimeDiffMin स्थान_नाम स्थान_प्लेटफ़ॉर्म \ 0 0 स्पिटल एम पाइहरन बहनहोफ़ 2 1 0 विंडिशगार्स्टन बहनहोफ़ 2 2 लिंज़/डोनाउ एचबीएफ 1ए-बी स्थान_स्टेशनआईडीएक्स स्थान_ट्रैक नंबर नाम दिनांक 0 0 आर 3932 आर 3932 01.10.2016 1 1 आर 3932 01.10.2016 2 22 आर 3932 01.10.2016

import json
import pandas as pd

with open('myJson.json') as data_file:
    data = json.load(data_file)

df = pd.json_normalize(data, 'locations', ['date', 'number', 'name'], record_prefix='locations_')

print(df)

एकाधिक ऑब्जेक्ट वाली JSON फ़ाइलों के लिए, दृष्टिकोण वांछित डेटा संरचना पर निर्भर करता है।
  locations_arrTime locations_arrTimeDiffMin locations_depTime  \
0                                                        06:32   
1             06:37                        1             06:40   
2             08:24                        1                     

  locations_depTimeDiffMin           locations_name locations_platform  \
0                        0  Spital am Pyhrn Bahnhof                  2   
1                        0  Windischgarsten Bahnhof                  2   
2                                    Linz/Donau Hbf               1A-B   

  locations_stationIdx locations_track number    name        date  
0                    0          R 3932         R 3932  01.10.2016  
1                    1                         R 3932  01.10.2016  
2                   22                         R 3932  01.10.2016 

व्यक्तिगत कॉलम रखें

व्यक्तिगत कॉलम (दिनांक, संख्या, नाम, स्थान) रखने के लिए, निम्नलिखित का उपयोग करें:

df = pd.read_json(' myJson.json') df.locations = pd.DataFrame(df.locations.values.tolist())['नाम'] df = df.groupby(['दिनांक', 'नाम', 'संख्या'])['स्थान'].apply(','.join).reset_index() print(df)यह डेटा को समूहीकृत करेगा और स्थानों को संयोजित करेगा:

दिनांक नाम संख्या स्थान 0 2016-01-10 आर 3932 स्पिटल एम पाइहरन बहनहोफ, विंडिशगार्स्टन बहन्हो...

df = pd.read_json('myJson.json')
df.locations = pd.DataFrame(df.locations.values.tolist())['name']
df = df.groupby(['date', 'name', 'number'])['locations'].apply(','.join).reset_index()

print(df)

यदि आप एक चपटी डेटा संरचना पसंद करते हैं, तो आप ऐसा कर सकते हैं निम्नलिखित सेटिंग्स के साथ json_normalize का उपयोग करें:
  locations_arrTime locations_arrTimeDiffMin locations_depTime  \
0                                                        06:32   
1             06:37                        1             06:40   
2             08:24                        1                     

  locations_depTimeDiffMin           locations_name locations_platform  \
0                        0  Spital am Pyhrn Bahnhof                  2   
1                        0  Windischgarsten Bahnhof                  2   
2                                    Linz/Donau Hbf               1A-B   

  locations_stationIdx locations_track number    name        date  
0                    0          R 3932         R 3932  01.10.2016  
1                    1                         R 3932  01.10.2016  
2                   22                         R 3932  01.10.2016 

df = pd.read_json('myJson.json', Orient='records', Convert_dates=['date']) print(df)यह डेटा को एक ही तालिका में आउटपुट करेगा:

नंबर दिनांक नाम ...स्थान.arrTimeDiffMinlocations.depTimeDiffMinlocations.platform 0 आर 3932 2016-01-10 आर 3932 ... 0 0 2 1 आर 3932 2016-01-10 आर 3932 ... 1 0 2 2 आर 3932 2016-01-10 आर 3932 ... 1 - 1ए-बी

विज्ञप्ति वक्तव्य यह आलेख यहां पुनर्मुद्रित है: 1729739643 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.कॉम से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3