{"id":267356,"date":"2024-12-31T15:11:25","date_gmt":"2024-12-31T15:11:25","guid":{"rendered":"https:\/\/imarticus.org\/blog\/?p=267356"},"modified":"2024-12-31T15:11:25","modified_gmt":"2024-12-31T15:11:25","slug":"null-values-with-pandas","status":"publish","type":"post","link":"https:\/\/imarticus.org\/blog\/null-values-with-pandas\/","title":{"rendered":"Checking Null Values with Pandas"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Data is rarely perfect in real-world scenarios. Missing or incomplete data can lead to inaccurate analysis and flawed decisions. That\u2019s where handling the <\/span><span style=\"font-weight: 400;\">null value<\/span><span style=\"font-weight: 400;\"> becomes essential. In Python, the Pandas library provides efficient tools for identifying and managing these missing data points. Let\u2019s explore the techniques to handle <\/span><span style=\"font-weight: 400;\">pandas null values<\/span><span style=\"font-weight: 400;\"> effectively.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Before diving deep, consider boosting your data science skills with professional training. The <\/span><b>Postgraduate Program in Data Science &amp; Analytics<\/b><span style=\"font-weight: 400;\"> by Imarticus Learning offers hands-on experience in tools like Pandas. This <\/span><a href=\"https:\/\/imarticus.org\/postgraduate-program-in-data-science-analytics\/\"><span style=\"font-weight: 400;\">data science course<\/span><\/a><span style=\"font-weight: 400;\"> helps you tackle data challenges and advance your career.<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">What Are Null Values?<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Null values<\/span><span style=\"font-weight: 400;\"> represent missing or undefined data. They occur when:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Data wasn\u2019t collected correctly.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Files were corrupted during transfer.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Incomplete records exist in datasets.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Pandas identifies these <\/span><a href=\"https:\/\/pandas.pydata.org\/docs\/user_guide\/missing_data.html\"><span style=\"font-weight: 400;\">missing values<\/span><\/a><span style=\"font-weight: 400;\"> as <\/span><b><i>NaN<\/i><\/b> <span style=\"font-weight: 400;\">(Not a Number).<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">Why Handle Null Values?<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Null values disrupt data analysis workflows. Reasons to address them include:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Prevent skewed insights<\/b><span style=\"font-weight: 400;\">: Missing data distorts calculations.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Enable model training<\/b><span style=\"font-weight: 400;\">: Machine learning models require complete datasets.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Improve data accuracy<\/b><span style=\"font-weight: 400;\">: Reliable data drives better decisions.<\/span><\/li>\n<\/ul>\n<h2><span style=\"font-weight: 400;\">Checking for Null Values in Pandas<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">The first step is identifying null values in your dataset. Pandas offers multiple methods to detect missing values.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">Using <\/span><b><i>isnull()<\/i><\/b><span style=\"font-weight: 400;\"> Method<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">The <\/span><b><i>isnull()<\/i><\/b><span style=\"font-weight: 400;\"> method highlights missing data.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Returns a DataFrame<\/b><span style=\"font-weight: 400;\">: Displays <\/span><b><i>True <\/i><\/b><span style=\"font-weight: 400;\">for null values.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Quick visualisation<\/b><span style=\"font-weight: 400;\">: Identifies problematic areas.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Example:<\/span><\/p>\n<p><b><i>import pandas as pd<\/i><\/b><\/p>\n<p><b><i>data = {&#8216;Name&#8217;: [&#8216;Alice&#8217;, &#8216;Bob&#8217;, None],<\/i><\/b><\/p>\n<p><b><i>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&#8216;Age&#8217;: [25, None, 30]}<\/i><\/b><\/p>\n<p><i><span style=\"font-weight: 400;\"># Creating DataFrame<\/span><\/i><\/p>\n<p><b><i>df = pd.DataFrame(data)<\/i><\/b><\/p>\n<p><b><i>print(df.isnull())<\/i><\/b><\/p>\n<p><span style=\"font-weight: 400;\">Output:<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0<\/span><b>Name <\/b><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0<\/span><b>Age<\/b><\/p>\n<p><span style=\"font-weight: 400;\">0\u00a0 False \u00a0 \u00a0 False<\/span><\/p>\n<p><span style=\"font-weight: 400;\">1\u00a0 False \u00a0 \u00a0 True<\/span><\/p>\n<p><span style=\"font-weight: 400;\">2\u00a0 True \u00a0 \u00a0 \u00a0 False<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">Using <\/span><b><i>notnull()<\/i><\/b><span style=\"font-weight: 400;\"> Method<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">The <\/span><b><i>notnull()<\/i><\/b><span style=\"font-weight: 400;\"> method shows where data exists.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Opposite of <\/b><b><i>isnull()<\/i><\/b><span style=\"font-weight: 400;\">: Displays <\/span><b><i>True <\/i><\/b><span style=\"font-weight: 400;\">for valid values.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Useful for filtering<\/b><span style=\"font-weight: 400;\">: Identify rows with complete data.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Example:<\/span><\/p>\n<p><b><i>print(df.notnull())<\/i><\/b><\/p>\n<h2><span style=\"font-weight: 400;\">How to Handle Null Values in Pandas?<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Handling <\/span><span style=\"font-weight: 400;\">pandas missing values<\/span><span style=\"font-weight: 400;\"> ensures clean datasets. Techniques include:<\/span><\/p>\n<h4><b>1. Dropping Null Values<\/b><\/h4>\n<p><span style=\"font-weight: 400;\">Remove rows or columns containing null values.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b><i>dropna()<\/i><\/b><span style=\"font-weight: 400;\">: Deletes data with NaNs.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Customisable<\/b><span style=\"font-weight: 400;\">: Choose rows, columns, or thresholds.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Example:<\/span><\/p>\n<p><i><span style=\"font-weight: 400;\"># Drop rows with NaNs<\/span><\/i><\/p>\n<p><b><i>cleaned_df = df.dropna()<\/i><\/b><\/p>\n<h4><b>2. Filling Null Values<\/b><\/h4>\n<p><span style=\"font-weight: 400;\">Replace NaNs with meaningful substitutes.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b><i>fillna()<\/i><\/b><span style=\"font-weight: 400;\">: Fills missing data.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Options<\/b><span style=\"font-weight: 400;\">: Use constants, mean, or interpolation.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Example:<\/span><\/p>\n<p><i><span style=\"font-weight: 400;\"># Replace NaNs with 0<\/span><\/i><\/p>\n<p><b><i>df[&#8216;Age&#8217;] = df[&#8216;Age&#8217;].fillna(0)<\/i><\/b><\/p>\n<h4><b>3. Forward and Backward Fill<\/b><\/h4>\n<p><span style=\"font-weight: 400;\">Propagate existing values to fill NaNs.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Forward fill (<\/b><b><i>ffill<\/i><\/b><b>)<\/b><span style=\"font-weight: 400;\">: Copies previous values downward.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Backward fill (<\/b><b><i>bfill<\/i><\/b><b>)<\/b><span style=\"font-weight: 400;\">: Uses next values upward.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Example:<\/span><\/p>\n<p><i><span style=\"font-weight: 400;\"># Forward fill<\/span><\/i><\/p>\n<p><b><i>df[&#8216;Age&#8217;] = df[&#8216;Age&#8217;].ffill()<\/i><\/b><\/p>\n<h4><b>4. Interpolation<\/b><\/h4>\n<p><span style=\"font-weight: 400;\">Estimate missing values using data trends.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Interpolation<\/b><span style=\"font-weight: 400;\">: Fills gaps using linear or polynomial methods.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Useful for numeric data<\/b><span style=\"font-weight: 400;\">.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Example:<\/span><\/p>\n<p><i><span style=\"font-weight: 400;\"># Linear interpolation<\/span><\/i><\/p>\n<p><b><i>df[&#8216;Age&#8217;] = df[&#8216;Age&#8217;].interpolate()<\/i><\/b><\/p>\n<h2><span style=\"font-weight: 400;\">Pandas Missing Values<\/span><span style=\"font-weight: 400;\"> in Machine Learning<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Handling null values is crucial for ML workflows.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Imputation<\/b><span style=\"font-weight: 400;\">: Replace NaNs with median or mean.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Feature engineering<\/b><span style=\"font-weight: 400;\">: Identify patterns in missing data.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Pipeline integration<\/b><span style=\"font-weight: 400;\">: Automate handling in preprocessing steps.<\/span><\/li>\n<\/ul>\n<h2><span style=\"font-weight: 400;\">Best Practices for <\/span><span style=\"font-weight: 400;\">How to Handle Null Values in Pandas<\/span><\/h2>\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Analyse patterns<\/b><span style=\"font-weight: 400;\">: Understand why data is missing.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Choose wisely<\/b><span style=\"font-weight: 400;\">: Drop or fill based on context.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Document changes<\/b><span style=\"font-weight: 400;\">: Track modifications for reproducibility.<\/span><\/li>\n<\/ol>\n<h2><span style=\"font-weight: 400;\">Detecting Null Values with Visualisation<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Visualising data helps identify missing values.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Heatmaps<\/b><span style=\"font-weight: 400;\">: Highlight null patterns graphically.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Bar plots<\/b><span style=\"font-weight: 400;\">: Show missing counts per column.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Histogram<\/b><span style=\"font-weight: 400;\">: Displays data distribution irregularities.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Example with Seaborn library:<\/span><\/p>\n<p><b><i>import seaborn as sns<\/i><\/b><\/p>\n<p><b><i>sns.heatmap(df.isnull(), cbar=False)<\/i><\/b><\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Benefits<\/b><span style=\"font-weight: 400;\">: Quick insights into null distributions.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Drawbacks<\/b><span style=\"font-weight: 400;\">: Visualisation is less scalable for big data.<\/span><\/li>\n<\/ul>\n<h2><span style=\"font-weight: 400;\">Conditional Handling of Null Values<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Address nulls based on specific criteria.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Drop if sparse<\/b><span style=\"font-weight: 400;\">: Remove columns\/rows mostly empty.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Fill based on groups<\/b><span style=\"font-weight: 400;\">: Use median for grouped data.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Apply domain logic<\/b><span style=\"font-weight: 400;\">: Define unique null-handling rules.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Example:<\/span><\/p>\n<p><i><span style=\"font-weight: 400;\"># Fill null by group median<\/span><\/i><\/p>\n<p><b><i>df[&#8216;Value&#8217;] = df.groupby(&#8216;Category&#8217;)[&#8216;Value&#8217;].transform(<\/i><\/b><\/p>\n<p><b><i>\u00a0\u00a0\u00a0\u00a0lambda x: x.fillna(x.median()))<\/i><\/b><\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Advantage<\/b><span style=\"font-weight: 400;\">: Tailored solutions maintain data integrity.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Challenge<\/b><span style=\"font-weight: 400;\">: Needs domain knowledge to implement.<\/span><\/li>\n<\/ul>\n<h2><span style=\"font-weight: 400;\">Handling Categorical Missing Values<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Categorical data requires unique null treatments.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Mode replacement<\/b><span style=\"font-weight: 400;\">: Replace nulls with the most frequent value.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Unknown category<\/b><span style=\"font-weight: 400;\">: Add a placeholder like &#8220;<\/span><i><span style=\"font-weight: 400;\">Unknown<\/span><\/i><span style=\"font-weight: 400;\">&#8220;.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Custom mapping<\/b><span style=\"font-weight: 400;\">: Map nulls based on business rules.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Example:<\/span><\/p>\n<p><i><span style=\"font-weight: 400;\"># Replace missing with &#8220;Unknown&#8221;<\/span><\/i><\/p>\n<p><b><i>df[&#8216;Category&#8217;] = df[&#8216;Category&#8217;].fillna(&#8216;Unknown&#8217;)<\/i><\/b><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Key Insight<\/b><span style=\"font-weight: 400;\">: Retains categorical feature relevance.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Drawback<\/b><span style=\"font-weight: 400;\">: May oversimplify true data trends.<\/span><\/li>\n<\/ul>\n<h2><span style=\"font-weight: 400;\">Using Machine Learning to Fill Nulls<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Predict values for missing data entries.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Regression models<\/b><span style=\"font-weight: 400;\">: Predict numeric nulls from related features.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Classification models<\/b><span style=\"font-weight: 400;\">: Infer missing categories accurately.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Auto-impute tools<\/b><span style=\"font-weight: 400;\">: Use Scikit-learn\u2019s <\/span><b><i>IterativeImputer<\/i><\/b><span style=\"font-weight: 400;\">.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Example:<\/span><\/p>\n<p><b><i>from sklearn.experimental import enable_iterative_imputer<\/i><\/b><\/p>\n<p><b><i>from sklearn.impute import IterativeImputer<\/i><\/b><\/p>\n<p>&nbsp;<\/p>\n<p><i><span style=\"font-weight: 400;\"># Initialise and apply iterative imputer<\/span><\/i><\/p>\n<p><b><i>imputer = IterativeImputer()<\/i><\/b><\/p>\n<p><b><i>df.iloc[:, :] = imputer.fit_transform(df)<\/i><\/b><\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Pro<\/b><span style=\"font-weight: 400;\">: Adds precision in null handling.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Con<\/b><span style=\"font-weight: 400;\">: May overfit without proper training.<\/span><\/li>\n<\/ul>\n<h2><span style=\"font-weight: 400;\">Documenting Null Value Trends Over Time<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Understanding how null values evolve in datasets over time provides insights into their patterns and origins. This approach aids in better decision-making.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Track missing data rates<\/b><span style=\"font-weight: 400;\">: Monitor NaN counts periodically.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Identify seasonal effects<\/b><span style=\"font-weight: 400;\">: Spot recurring gaps in data collection.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Visualise trends<\/b><span style=\"font-weight: 400;\">: Use line or area charts to depict changes.<\/span><\/li>\n<\/ul>\n<p><b>Key Insight<\/b><span style=\"font-weight: 400;\">: Regular monitoring helps identify systemic issues.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><b>Practical Tip<\/b><span style=\"font-weight: 400;\">: Combine temporal trends with domain knowledge for accurate conclusions.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">Wrapping Up<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Dealing with null values is an integral part of data cleaning. <\/span><a href=\"https:\/\/pandas.pydata.org\/\"><span style=\"font-weight: 400;\">Using Pandas<\/span><\/a><span style=\"font-weight: 400;\">, you can efficiently identify and manage missing data to ensure accurate analysis. From using <\/span><b><i>isnull()<\/i><\/b><span style=\"font-weight: 400;\"> to advanced techniques like interpolation, Pandas equips you with all the tools needed to clean datasets effectively.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">If you\u2019re eager to master data handling, consider the <\/span><span style=\"font-weight: 400;\">Postgraduate Program in Data Science &amp; Analytics<\/span><span style=\"font-weight: 400;\"> by Imarticus Learning. This program offers comprehensive training to turn data challenges into opportunities.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">Frequently Asked Questions<\/span><\/h3>\n<p><b>What is a null value in Pandas?<\/b><b><br \/>\n<\/b><span style=\"font-weight: 400;\">Null values represent missing or undefined data marked as NaN.<\/span><\/p>\n<p><b>How can I check for null values in Pandas?<\/b><b><br \/>\n<\/b><span style=\"font-weight: 400;\">Use methods like <\/span><b><i>isnull()<\/i><\/b><span style=\"font-weight: 400;\"> and <\/span><b><i>notnull()<\/i><\/b><span style=\"font-weight: 400;\"> to identify missing data.<\/span><\/p>\n<p><b>What is the <\/b><b><i>fillna()<\/i><\/b><b> method used for?<\/b><b><br \/>\n<\/b><span style=\"font-weight: 400;\">The <\/span><b><i>fillna()<\/i><\/b><span style=\"font-weight: 400;\"> method replaces null values with constants or calculated values.<\/span><\/p>\n<p><b>Why is handling missing data important?<\/b><b><br \/>\n<\/b><span style=\"font-weight: 400;\">Handling missing data ensures accurate analysis and reliable model training.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Data is rarely perfect in real-world scenarios. Missing or incomplete data can lead to inaccurate analysis and flawed decisions. That\u2019s where handling the null value becomes essential. In Python, the Pandas library provides efficient tools for identifying and managing these missing data points. Let\u2019s explore the techniques to handle pandas null values effectively. Before diving [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":267357,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_mo_disable_npp":"","_lmt_disableupdate":"","_lmt_disable":"","footnotes":""},"categories":[23],"tags":[5044],"class_list":["post-267356","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-analytics","tag-null-values-with-pandas"],"acf":[],"aioseo_notices":[],"modified_by":"Imarticus Learning","_links":{"self":[{"href":"https:\/\/imarticus.org\/blog\/wp-json\/wp\/v2\/posts\/267356","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/imarticus.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/imarticus.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/imarticus.org\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/imarticus.org\/blog\/wp-json\/wp\/v2\/comments?post=267356"}],"version-history":[{"count":1,"href":"https:\/\/imarticus.org\/blog\/wp-json\/wp\/v2\/posts\/267356\/revisions"}],"predecessor-version":[{"id":267358,"href":"https:\/\/imarticus.org\/blog\/wp-json\/wp\/v2\/posts\/267356\/revisions\/267358"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/imarticus.org\/blog\/wp-json\/wp\/v2\/media\/267357"}],"wp:attachment":[{"href":"https:\/\/imarticus.org\/blog\/wp-json\/wp\/v2\/media?parent=267356"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/imarticus.org\/blog\/wp-json\/wp\/v2\/categories?post=267356"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/imarticus.org\/blog\/wp-json\/wp\/v2\/tags?post=267356"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}