Companies structure and store data in several formats to simplify the rendering and transfer of information. JSON is one of the most general and adaptable data file types used across the world for building web applications. While working as an analyst, you will often be tasked to analyze data from JSON files. In such cases, you will have to load JSON into Pandas’ DataFrame before you can leverage the capabilities of Pandas for manipulating and analyzing data.
In this article, we will dig deeper into understanding Pandas load JSON, its features, the JSON file format, and how to load and use JSON data into your Pandas’ DataFrame.
Prerequisites
This guide on Pandas load JSON requires a basic understanding of Python Programming.
What is Pandas?
Pandas is an open-source Python library that provides quick and versatile Data Manipulation capabilities. Wes McKinney created Pandas in 2008 in response to a demand for an effective, comprehensive, and lightning-fast Data Processing Tool. Python later got supported by NUMFOCUS in 2015, thus allowing Pandas to obtain a larger and more engaged ecosystem.
Pandas is built on NumPy and is designed to work nicely with a wide variety of third-party libraries for scientific computing. With Pandas library, you can import, organize, modify, classify, and analyze Big Data. The Pandas toolkit makes Data Management and Exploration simple with easily understandable methods.
Over the years, Pandas has become a foundation for Data Analytics tasks. Pandas’ two core data structures – Series (1-dimensional) and DataFrame (2-dimensional) – are capable of handling a huge amount of data. Pandas offer Collections and DataFrames, which allow users to efficiently describe and change data in multiple approaches.
Installing Pandas
If you are using an Anaconda prompt, type this command to install Pandas.
pip install pandas
Or
Conda install pandas
Advantages of Pandas
DataFrames
Data frames in Pandas organize data into 2-dimensional tables containing rows and columns. Pandas come with a large range of constructed capabilities to handle data effectively. With DataFrames, you can read and write different kinds of data for analysis.
Pandas’ DataFrames can help you seamlessly unscramble and visualize data for analysis. It can also assist you in integrating multiple datasets quickly so that you can work with colossal amounts of data effectively.
Data Cleaning
Data Cleaning is the process of finding and removing undesired data within the dataset. Since data comes from different sources, data is usually raw and unformatted. Such data is unfit for Data Analysis.
However, with Pandas, you can leverage several methods to quickly transform information into the desired form. It can also help you in removing null or duplicate values and has methods to group data, thereby enabling Data Aggregation or Data Transformation.
Data Visualization
Data Analysis would have been incomprehensible to most people without superior visualization. Data Visualization is an essential part of Data Analysis for exploratory analysis of data.
Pandas have a built-in feature that allows users to create charts and analyze data to detect anomalies and gain statistical values. With Pandas, you can build different types of plots like histograms, scatter plots, box plots, bar charts, line charts, and many more.
Mathematical Operations
Pandas allow you to perform mathematical operations in ways that can expedite the processing of Big Data. You can carry out operations like vectorization, addition, subtraction, fill null values with comparison, and more with ease.
Other operations include statistical operations on numerical data to find standard deviation, mean, median, and mode.
Compatibility
Since Pandas is built on top of C or Cython, it not only can help in quick computation but also is compatible with other libraries. For example, you can use the matplotlib and NumPy libraries in combination with Pandas.
What is JSON?
JSON, which stands for JavaScript Object Notation, is a lightweight format for storing and transporting data. It is widely used when data is transferred from a server to a webpage. Since data is organized in key-value pairs, it is also easier for humans to comprehend the data. The simplicity of JSON makes it a popular choice for programmers to structure and transfer data among applications.
JSON is a string format similar to JavaScript object literals, thereby supporting characters, integers, arrays, bool, and other object literals, just as in a typical JavaScript object.
For example, a typical JSON would look like this:
{
"squadName": "Super hero squad",
"homeTown": "Metro City",
"formed": 2016,
"secretBase": "Super tower",
"active": true,
"members": [
{
"name": "Molecule Man",
"age": 29,
"secretIdentity": "Dan Jukes",
"powers": [
"Radiation resistance",
"Turning tiny",
"Radiation blast"
]
}
As you can see from above, JSON entities feature a very consistent format, making it easier for programmers to understand and write code to handle data in JSON format.
JSON is also language agnostic, meaning it is compatible with almost any current computer language. For example, if you have to modify the web server languages, it will be easy to do so because the JSON format is the same across all dialects.
Creating Dataframes in Pandas
In this section of the Pandas Load JSON guide, we discuss the many ways to create a Dataframe using Pandas.
Creating Pandas Dataframe Using Lists
Here’s a basic example to create a Pandas Dataframe using a simple list of two columns “Name” and “Age”.
# Import pandas library
import pandas as pd
# initialize list of lists
data = [['tom', 10], ['nick', 15], ['juli', 14]]
# Create the pandas DataFrame
df = pd.DataFrame(data, columns = ['Name', 'Age'])
# print the data.
print(df)
Output
Name Age
tom 10
nick 15
juli 14
Creating Pandas Dataframe Using Dictionaries
In this example, we create Pandas Dataframe using dictionaries.
import pandas as pd
# initialize data of lists.
data = {'Name':['Tom', 'nick', 'krish', 'jack'],
'Age':[20, 21, 19, 18]}
# Create DataFrame
df = pd.DataFrame(data)
# print the data.
print(df)
Output
Name Age
Tom 20
nick 21
krish 19
jack 18
Creating Pandas Dataframe Using Arrays
You can also use arrays to create Pandas Dataframe. Here’s one example to do so:
import pandas as pd
# initialize data of lists.
data = {'Name':['Tom', 'Jack', 'nick', 'juli'],
'marks':[99, 98, 95, 90]}
# Creates pandas DataFrame.
df = pd.DataFrame(data, index =['rank1',
'rank2',
'rank3',
'rank4'])
# print the data.
print(df)
Output
Name marks
rank1 Tom 99
rank2 Jack 98
rank3 nick 95
rank4 juli 90
Creating Pandas Dataframe Using Zip Function
Another method is to create Pandas Dataframe using zip() function as shown below:
import pandas as pd
# List1
Name = ['tom', 'krish', 'nick', 'juli']
# List2
Age = [25, 30, 26, 22]
# get the list of tuples from two lists.
# and merge them by using zip().
list_of_tuples = list(zip(Name, Age))
# Converting lists of tuples into
# pandas Dataframe.
df = pd.DataFrame(list_of_tuples,
columns = ['Name', 'Age'])
# print the data.
print(df)
Output
Name Age
tom 25
krish 30
nick 26
juli 22
Creating Pandas Dataframe Using Dictionary of Series
Using dictionary of series to create Pandas Dataframe:
import pandas as pd
# Initialize data to dictionary of series.
d = {'Electronics' : pd.Series([97, 56, 87, 45], index =['John', 'Abhinay', 'Peter', 'Andrew']),
'Civil' : pd.Series([97, 88, 44, 96], index =['John', 'Abhinay', 'Peter', 'Andrew'])}
# creates Dataframe.
dframe = pd.DataFrame(d)
# print the data.
print(dframe)
Output
Electronics Civil
John 97 97
Abhinay 56 88
Peter 87 44
Andrew 45 96
Creating Pandas Dataframe Using Lists of Dictionaries
Out last method in Pandas Load JSON guide, that uses lists of dictionaries to create Pandas Dataframe:
import pandas as pd
# assign values to lists
data = [{'x': 2, 'z':3}, {'x': 10, 'y': 20, 'z': 30}]
# Creates padas DataFrame by passing lists of dictionaries and row indexes.
dframe = pd.DataFrame(data, index =['first', 'second'])
# Print the dataframe
print(dframe)
Output
x z y
first 2 3 NaN
second 10 30 20.0
Pandas Load JSON into the DataFrame
A. Pandas Load JSON: Reading JSON From Local File
Step 1: You need to create a JSON file that contains JSON strings.
{"Product":{"0":"Desktop Computer","1":"Tablet","2":"iPhone","3":"Laptop"},"Price":{"0":700,"1":250,"2":800,"3":1200}}
Step 2: Save the file with extension .json to create a JSON file.
Step 3: Load the JSON file in Pandas using the command below.
import pandas as pd
# you have to showcase the path to the file in your local drive.
data = pd.read_json (‘pathfile_name.json')
# print the loaded JSON into dataframe
print(data)
You have to provide the designated path where your .json file is located. The output obtained when you use command print(data) is as follows:
B. Pandas Load JSON: Reading JSON from a URL
The below-mentioned commands help you to load JSON from a URL.
URL = 'http://raw.githubusercontent.com/BindiChen/machine-learning/master/data-analysis/027-pandas-convert-json/data/simple.json'
data = pd.read_json(URL)
Output:
Pandas Load JSON: Pandas DataFrame to JSON file
To convert the Pandas DataFrame to JSON, you can use a method named to_json() which is an inbuilt method.
Pandas Load JSON DataFrame Syntax
DataFrame.to_json(self, path_or_buf=None, orient=None,
date_format=None, double_precision=10,
force_ascii=True,
date_unit='ms',
default_handler=None, lines=False,
compression='infer', index=True)
Pandas Load JSON DataFrame Example
import pandas as pd
# Creating Dataframe
df = pd.DataFrame(
[['Stranger Things', 'Money Heist'], ['Most Dangerous Game', 'The Stranger']],
columns=['Netflix', 'Quibi'])
data = df.to_json(orient='columns')
print(data)
Output
Conclusion
In this article, you learned about the JSON file format and how to load it into a Pandas’ DataFrame. You learned how a Pandas’ DataFrame could be converted into a JSON file as well. Most Data Scientists utilize Pandas to manipulate information before developing Machine Learning Models. While working with Big Data, you will often come across Pandas load JSON files. Knowing how to load JSON into a DataFrame can simplify your Data Analysis and Machine Learning tasks.
Companies using databases like MySQL and PostgreSQL find Hevo Data a simple and speedy ETL solution to build their Database Pipelines.
Hevo brings them a No-Code ETL Pipeline Solution. It lets you migrate your data from your 100+ Data Sources to any Data Warehouse of your choice like Amazon Redshift, Snowflake, Google BigQuery, or Firebolt within minutes with just a few clicks.
Any individual or team, even from a non-data team can set up a Data Pipeline from their Database or SaaS Application into their Data Warehouse in a jiffy and start loading their data.
FAQs
How to load JSON file with Pandas?
You can load a JSON file using Pandas’ read_json()
method:
import pandas as pd df = pd.read_json('file.json')
This reads the JSON file into a Pandas DataFrame.
How to load JSON string into Pandas DataFrame?
To load a JSON string into a Pandas DataFrame, use the pd.read_json()
method with the json.loads()
from Python’s built-in library:
import pandas as pd import json json_string = '{"name": "John", "age": 30}' df = pd.read_json(json.loads(json_string))
How to read a JSON column in Pandas?
If you have a column in a DataFrame containing JSON-like data, use pd.json_normalize()
to expand it:
import pandas as pd df = pd.DataFrame({'col': ['{"name": "John", "age": 30}', '{"name": "Jane", "age": 25}']}) df['col'] = df['col'].apply(pd.json_normalize)
This will convert the JSON strings in the column into structured data.
Vivek Sinha is a seasoned product leader with over 10 years of expertise in revolutionizing real-time analytics and cloud-native technologies. He specializes in enhancing Apache Pinot, focusing on query processing and data mutability. Vivek is renowned for his strategic vision and ability to deliver cutting-edge solutions that empower businesses to harness the full potential of their data.