नेस्टेड 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ए-बी
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3