{"id":4064,"date":"2024-06-05T14:48:49","date_gmt":"2024-06-05T21:48:49","guid":{"rendered":"https:\/\/ioflood.com\/blog\/?p=4064"},"modified":"2024-06-05T20:16:54","modified_gmt":"2024-06-06T03:16:54","slug":"python-pandas","status":"publish","type":"post","link":"https:\/\/ioflood.com\/blog\/python-pandas\/","title":{"rendered":"Python Pandas | Quick Start Guide (With Examples)"},"content":{"rendered":"<div class=\"wp-block-image\">\n<figure class=\"alignright size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/ioflood.com\/blog\/wp-content\/uploads\/2024\/06\/Graphic-of-technicians-working-with-Python-pandas-to-enhance-data-analysis-capabilities-300x300.jpg\" alt=\"Graphic of technicians working with Python pandas to enhance data analysis capabilities\" width=\"300\" height=\"300\" title=\"\"><\/figure>\n<\/div>\n<p>Harnessing the power of Python for data analysis is a core aspect of our operations at <a class=\"wp-editor-md-post-content-link\" href=\"https:\/\/ioflood.com\/\">IOFLOOD<\/a>, and Pandas is a pivotal tool in this endeavor. Today&#8217;s article has been designed to assist our customers utilize the capabilities and advantages of Pandas on their <a class=\"wp-editor-md-post-content-link\" href=\"https:\/\/ioflood.com\/phoenix-dedicated-servers.php\">dedicated server hosting<\/a> platforms.<\/p>\n<p><strong>In this comprehensive guide, we&#8217;ll start from the basics of Python Pandas, gradually moving to its advanced features.<\/strong> The goal is to help you become proficient in using this powerful library, enabling you to manipulate, analyze, and visualize data with ease.<\/p>\n<p>Let&#8217;s dive into the world of Python Pandas and explore its capabilities!<\/p>\n<h2>TL;DR: What is Pandas in Python?<\/h2>\n<blockquote><p>\n  <code>Pandas<\/code> is a powerful data manipulation library in Python. To use it only requires you to import it using the code, <code>import pandas as pd<\/code>. It provides <a href=\"https:\/\/ioflood.com\/blog\/python-data-structures\/\">data structures<\/a> and functions needed for manipulating structured data, making data analysis a more streamlined process.\n<\/p><\/blockquote>\n<p>Here&#8217;s a simple example of using pandas:<\/p>\n<pre><code class=\"language-python line-numbers\">import pandas as pd\n\n# Creating a dictionary with data\n\ndata = {'Name': ['John', 'Anna', 'Peter'], 'Age': [28, 24, 22]}\n\n# Converting the dictionary into a DataFrame\n\ndf = pd.DataFrame(data)\n\n# Printing the DataFrame\n\nprint(df)\n\n# Output:\n\n   Name  Age\n0  John   28\n1  Anna   24\n2  Peter  22\n<\/code><\/pre>\n<p>In the above example, we first <a href=\"https:\/\/ioflood.com\/blog\/python-import-from-another-directory\/\">import the pandas library<\/a>. Then, we create a dictionary with some data. This dictionary is converted into a pandas DataFrame using the <code>pd.DataFrame()<\/code> function. Finally, we print the DataFrame, which neatly organizes our data into rows and columns.<\/p>\n<blockquote><p>\n  Intrigued? Keep reading for a deeper understanding and more advanced usage of Python Pandas!\n<\/p><\/blockquote>\n<h2>The Basics of DataFrame Handling<\/h2>\n<p>Pandas revolves around two main data structures: Series and DataFrame. A Series is a one-dimensional array-like object, while a DataFrame is a two-dimensional table, similar to an Excel spreadsheet.<\/p>\n<h3>Creating a DataFrame<\/h3>\n<p>Creating a DataFrame in Pandas is straightforward. You can create one from a dictionary, a list, or even <a href=\"https:\/\/ioflood.com\/blog\/pandas-read-csv\/\">read data from a CSV file<\/a>. Here&#8217;s an <a href=\"https:\/\/ioflood.com\/blog\/python-create-dictionary\/\">example of creating a DataFrame from a dictionary:<\/a><\/p>\n<pre><code class=\"language-python line-numbers\">import pandas as pd\n\ndata = {'Name': ['John', 'Anna', 'Peter'], 'Age': [28, 24, 22]}\ndf = pd.DataFrame(data)\nprint(df)\n\n# Output:\n#    Name  Age\n# 0  John   28\n# 1  Anna   24\n# 2  Peter  22\n<\/code><\/pre>\n<p>In the above code, we first import the pandas library as pd. Then, we create a dictionary &#8216;data&#8217; with &#8216;Name&#8217; and &#8216;Age&#8217; as keys and lists of names and ages as values. We then pass this dictionary to the <code>pd.DataFrame()<\/code> function to create a DataFrame. When we print this DataFrame, it displays our data in a neat tabular format.<\/p>\n<h3>Reading Data from Different Sources<\/h3>\n<p>Pandas also allows you to <a href=\"https:\/\/ioflood.com\/blog\/python-read-csv\/\">read data from different sources like CSV<\/a> files, Excel files, SQL databases, and more. Here&#8217;s an <a href=\"https:\/\/ioflood.com\/blog\/python-read-file-quick-guide-with-examples\/\">example of reading data from a CSV file:<\/a><\/p>\n<pre><code class=\"language-python line-numbers\">df = pd.read_csv('data.csv')\nprint(df.head())\n# Output: Prints the first 5 rows of the DataFrame\n<\/code><\/pre>\n<p>In this example, we use the <code>pd.read_csv()<\/code> function to read a CSV file named &#8216;data.csv&#8217; and store it in a DataFrame. We then print the first 5 rows of the DataFrame using the <code>df.head()<\/code> function.<\/p>\n<h3>Basic DataFrame Manipulation Techniques<\/h3>\n<p>Pandas provides several functions for basic data manipulation. You can add or drop columns, sort data, filter rows, and more. Here&#8217;s an example of adding a new column to our DataFrame:<\/p>\n<pre><code class=\"language-python line-numbers\">df['Salary'] = [50000, 60000, 70000]\nprint(df)\n\n# Output:\n#    Name  Age  Salary\n# 0  John   28   50000\n# 1  Anna   24   60000\n# 2  Peter  22   70000\n<\/code><\/pre>\n<p>In this code, we add a new column &#8216;Salary&#8217; to our DataFrame by assigning a list of salaries to <code>df['Salary']<\/code>. When we print the DataFrame, it now includes the &#8216;Salary&#8217; column.<\/p>\n<p>These basic operations are just the tip of the iceberg. Python Pandas offers a plethora of functions to manipulate data in more advanced ways, which we&#8217;ll explore in the next section.<\/p>\n<h2>Advanced Uses of Pandas Library<\/h2>\n<p>Once you&#8217;ve grasped the basics of Python Pandas, you can start exploring more advanced data manipulation techniques. In this section, we&#8217;ll discuss merging, grouping, and reshaping data, all of which are fundamental to advanced data analysis.<\/p>\n<h3>Merging Data<\/h3>\n<p>Merging is a way of combining different DataFrames into one. Let&#8217;s say we have two DataFrames: <code>df1<\/code> and <code>df2<\/code>. We can merge them based on a common column using the <code>merge()<\/code> function:<\/p>\n<pre><code class=\"language-python line-numbers\">df1 = pd.DataFrame({'Name': ['John', 'Anna', 'Peter'], 'Age': [28, 24, 22]})\ndf2 = pd.DataFrame({'Name': ['John', 'Anna', 'Peter'], 'Salary': [50000, 60000, 70000]})\ndf = pd.merge(df1, df2, on='Name')\nprint(df)\n\n# Output:\n#    Name  Age  Salary\n# 0  John   28   50000\n# 1  Anna   24   60000\n# 2  Peter  22   70000\n<\/code><\/pre>\n<p>In this example, we merge <code>df1<\/code> and <code>df2<\/code> based on the &#8216;Name&#8217; column. The resulting DataFrame <code>df<\/code> contains the &#8216;Name&#8217;, &#8216;Age&#8217;, and &#8216;Salary&#8217; columns.<\/p>\n<h3>Grouping Data<\/h3>\n<p>Grouping is another powerful feature of Pandas. It allows you to group your data based on certain criteria and then apply <a href=\"https:\/\/ioflood.com\/blog\/python-sum\/\">functions like sum<\/a>, count, or mean to each group. Here&#8217;s an example:<\/p>\n<pre><code class=\"language-python line-numbers\">df = pd.DataFrame({'Name': ['John', 'Anna', 'Peter', 'John', 'Anna'], 'Score': [85, 90, 95, 88, 92]})\ngrouped_df = df.groupby('Name').mean()\nprint(grouped_df)\n\n# Output:\n#       Score\n# Name       \n# Anna   91.0\n# John   86.5\n# Peter  95.0\n<\/code><\/pre>\n<p>In this code, we create a DataFrame with &#8216;Name&#8217; and &#8216;Score&#8217; columns. We then group this DataFrame by the &#8216;Name&#8217; column and calculate the mean score for each name. The resulting DataFrame <code>grouped_df<\/code> shows the average score for each name.<\/p>\n<h3>Reshaping Data<\/h3>\n<p>Reshaping data involves changing the structure of your data without altering its contents. One common way to reshape data in Pandas is by pivoting. Here&#8217;s an example:<\/p>\n<pre><code class=\"language-python line-numbers\">df = pd.DataFrame({'Date': ['2020-01-01', '2020-01-01', '2020-01-02', '2020-01-02'], 'City': ['New York', 'Los Angeles', 'New York', 'Los Angeles'], 'Temperature': [32, 75, 30, 77]})\npivoted_df = df.pivot(index='Date', columns='City', values='Temperature')\nprint(pivoted_df)\n\n# Output:\n# City        Los Angeles  New York\n# Date                            \n# 2020-01-01           75        32\n# 2020-01-02           77        30\n<\/code><\/pre>\n<p>In this example, we create a DataFrame with &#8216;Date&#8217;, &#8216;City&#8217;, and &#8216;Temperature&#8217; columns. We then pivot this DataFrame to create a new DataFrame <code>pivoted_df<\/code> where each row represents a date, each column represents a city, and cell values represent temperatures.<\/p>\n<p>These advanced techniques allow you to manipulate your data in more sophisticated ways, enabling you to extract meaningful insights from complex datasets.<\/p>\n<h2>Alternative Data Tools to Explore<\/h2>\n<p>While Python Pandas is a powerful tool for data manipulation, it&#8217;s not the only one. Other libraries like NumPy and Dask also offer robust capabilities. Depending on your specific needs, these alternatives might sometimes be more suitable.<\/p>\n<h3>Diving into NumPy<\/h3>\n<p>NumPy, short for Numerical Python, is a library best known for its support for large multi-dimensional arrays and matrices. It also includes a collection of mathematical functions to operate on these arrays. Here&#8217;s a simple example of NumPy in action:<\/p>\n<pre><code class=\"language-python line-numbers\">import numpy as np\n\n# Creating a 2D NumPy array\narray = np.array([[1, 2, 3], [4, 5, 6]])\nprint(array)\n\n# Output:\n# [[1 2 3]\n#  [4 5 6]]\n<\/code><\/pre>\n<p>In this example, we create a 2D array using NumPy. The <code>np.array()<\/code> function creates an array from the list of lists we provided.<\/p>\n<h3>Discovering Dask<\/h3>\n<p>Dask is a flexible library for parallel computing in Python. It&#8217;s designed to integrate seamlessly with NumPy, Pandas, and Scikit-Learn. This makes it a powerful tool when working with larger-than-memory computations. Here&#8217;s an example of how you can use Dask to perform lazy computations:<\/p>\n<pre><code class=\"language-python line-numbers\">import dask.array as da\n\n# Creating a large array\nx = da.ones((10000, 10000), chunks=(1000, 1000))\n\n# Performing a lazy computation\ny = x + x.T\n\n# Computing the result\nresult = y.compute()\nprint(result)\n\n# Output: A 10000x10000 array with 2's\n<\/code><\/pre>\n<p>In this code, we first create a large 10000&#215;10000 Dask array filled with ones. The <code>chunks<\/code> argument divides our array into smaller chunks, each of which fits into memory. We then perform a lazy computation, adding the array to its transpose. The computation isn&#8217;t performed immediately; instead, Dask builds up a task graph to execute when <code>compute()<\/code> is called. Finally, we compute and print the result.<\/p>\n<h3>Choosing the Right Tool<\/h3>\n<p>While Pandas, NumPy, and Dask all offer powerful features, the right tool depends on your specific needs. If you&#8217;re working with structured data and need high-level data manipulation capabilities, Pandas is the way to go. For numerical operations on large multi-dimensional arrays, NumPy is your best bet. And if you&#8217;re dealing with computations that don&#8217;t fit into memory, Dask is an excellent choice.<\/p>\n<h2>Troubleshooting Errors in Pandas<\/h2>\n<p>Like any powerful tool, Python Pandas can sometimes be complex and tricky to handle. It&#8217;s not uncommon to encounter issues, especially when dealing with large and messy real-world data. Here, we&#8217;ll discuss some common problems and their solutions.<\/p>\n<h3>Handling Missing Data<\/h3>\n<p>Missing data is a common issue in data analysis. Thankfully, Pandas provides several ways to handle it. You can choose to either drop the missing data or fill it with some value.<\/p>\n<p>Here&#8217;s an example of dropping missing data:<\/p>\n<pre><code class=\"language-python line-numbers\">import numpy as np\nimport pandas as pd\n\ndf = pd.DataFrame({'A': [1, 2, np.nan], 'B': [5, np.nan, np.nan], 'C': [1, 2, 3]})\ndf = df.dropna()\nprint(df)\n\n# Output:\n#      A    B    C\n# 0  1.0  5.0  1.0\n<\/code><\/pre>\n<p>In this example, we create a DataFrame with some missing values (np.nan). We then use the <code>dropna()<\/code> function to remove any rows with missing values.<\/p>\n<p>Here&#8217;s an example of <a href=\"https:\/\/ioflood.com\/blog\/pandas-fillna\/\">filling missing data<\/a> with a value (e.g., 0):<\/p>\n<pre><code class=\"language-python line-numbers\">import numpy as np\nimport pandas as pd\n\ndf = pd.DataFrame({'A': [1, 2, np.nan], 'B': [5, np.nan, np.nan], 'C': [1, 2, 3]})\ndf = df.fillna(value=0)\nprint(df)\n\n# Output:\n#      A    B  C\n# 0  1.0  5.0  1\n# 1  2.0  0.0  2\n# 2  0.0  0.0  3\n<\/code><\/pre>\n<p>In this code, we use the <code>fillna()<\/code> function to replace all missing values with 0.<\/p>\n<h3>Dealing with Type Errors<\/h3>\n<p>Another common issue is type errors. These occur when an operation is performed on <a class=\"wp-editor-md-post-content-link\" href=\"https:\/\/ioflood.com\/blog\/python-data-types\/\">a data type that doesn&#8217;t support it<\/a>. To avoid type errors, it&#8217;s important to ensure that your data types are correct.<\/p>\n<p>Here&#8217;s an <a href=\"https:\/\/ioflood.com\/blog\/python-set\/\">example of checking the data types<\/a> of a DataFrame:<\/p>\n<pre><code class=\"language-python line-numbers\">df = pd.DataFrame({'A': [1, 2, 3], 'B': [4.0, 5.0, 6.0], 'C': ['7', '8', '9']})\nprint(df.dtypes)\n\n# Output:\n# A      int64\n# B    float64\n# C     object\n# dtype: object\n<\/code><\/pre>\n<p>In this example, we create a DataFrame with integer, float, and string columns. We then use the <code>dtypes<\/code> attribute to print the data types of the columns.<\/p>\n<p>By understanding these common issues and how to resolve them, you can avoid many pitfalls and work more efficiently with Python Pandas.<\/p>\n<h2>Overview of Pandas Data Structures<\/h2>\n<p>The heart of Python Pandas lies in its fundamental data structures: the Series and DataFrame. Understanding these structures is key to mastering data manipulation with Pandas.<\/p>\n<h3>Diving into Series<\/h3>\n<p>A Series in Pandas is a one-dimensional array-like object that can hold any data type. It&#8217;s similar to a column in an Excel spreadsheet. Here&#8217;s an example of creating a Series:<\/p>\n<pre><code class=\"language-python line-numbers\">import pandas as pd\n\ns = pd.Series([1, 3, 5, np.nan, 6, 8])\nprint(s)\n\n# Output:\n# 0    1.0\n# 1    3.0\n# 2    5.0\n# 3    NaN\n# 4    6.0\n# 5    8.0\n# dtype: float64\n<\/code><\/pre>\n<p>In this example, we create a Series <code>s<\/code> by passing a list of values to the <code>pd.Series()<\/code> function. The resulting Series consists of an index on the left and values on the right.<\/p>\n<h3>Exploring DataFrame<\/h3>\n<p>A DataFrame, on the other hand, is a two-dimensional table of data with rows and columns. It&#8217;s similar to a spreadsheet or SQL table, or a dictionary of Series objects. Here&#8217;s an example of creating a DataFrame:<\/p>\n<pre><code class=\"language-python line-numbers\">import pandas as pd\n\ndf = pd.DataFrame({'A': pd.Timestamp('20200101'),\n                   'B': pd.Series(1, index=list(range(4)), dtype='float32'),\n                   'C': np.array([3] * 4, dtype='int32'),\n                   'D': pd.Categorical(['test', 'train', 'test', 'train']),\n                   'E': 'foo'})\nprint(df)\n\n# Output:\n#           A    B  C      D    E\n# 0 2020-01-01  1.0  3   test  foo\n# 1 2020-01-01  1.0  3  train  foo\n# 2 2020-01-01  1.0  3   test  foo\n# 3 2020-01-01  1.0  3  train  foo\n<\/code><\/pre>\n<p>In this code, we create a DataFrame <code>df<\/code> by passing a dictionary of objects to the <code>pd.DataFrame()<\/code> function. Each key-value pair in the dictionary corresponds to a column in the DataFrame. The resulting DataFrame displays a neat tabular representation of our data.<\/p>\n<h3>Pandas in the Python Data Analysis Ecosystem<\/h3>\n<p>Python Pandas fits into the data analysis ecosystem as a versatile tool for data manipulation. It works seamlessly with other libraries like NumPy for numerical operations, Matplotlib for plotting, and Scikit-learn for machine learning, making it a central part of any data analysis workflow in Python.<\/p>\n<h2>Practical Data Analysis using Pandas<\/h2>\n<p>Python Pandas is not just a tool for manipulating data; it&#8217;s a powerful library that plays a crucial role in real-world data analysis projects. Its functionalities extend beyond the basics, making it an invaluable asset in various stages of data analysis.<\/p>\n<h3>Pandas and Data Cleaning<\/h3>\n<p>Data cleaning is a critical step in any data analysis project. It involves handling missing data, dealing with outliers, and correcting inconsistent data types. With its robust data manipulation capabilities, Pandas simplifies these tasks, making data cleaning a more manageable process.<\/p>\n<h3>Exploratory Data Analysis with Pandas<\/h3>\n<p>Exploratory data analysis (EDA) is another area where Pandas shines. EDA involves understanding the patterns and relationships in data, and Pandas provides several functions for this purpose. For example, the <code>describe()<\/code> function gives a quick statistical summary of your data, while the <code>corr()<\/code> function calculates the pairwise correlation of columns.<\/p>\n<h3>Related Topics: Data Visualization and Machine Learning<\/h3>\n<p>Beyond data cleaning and EDA, Python Pandas also integrates well with other libraries in the Python ecosystem. For instance, you can use Pandas with Matplotlib for data visualization, creating plots and graphs from your DataFrames. Here&#8217;s a simple example:<\/p>\n<pre><code class=\"language-python line-numbers\">import matplotlib.pyplot as plt\n\ndf = pd.DataFrame({'A': [1, 2, 3, 4, 5], 'B': [2, 4, 6, 8, 10]})\ndf.plot(kind='line')\nplt.show()\n# Output: A line plot of the data in df\n<\/code><\/pre>\n<p>In this code, we create a DataFrame and then plot it using the <code>plot()<\/code> function. We then display the plot using <code>plt.show()<\/code>. The result is a line plot of our data.<\/p>\n<p>For machine learning tasks, you can use Pandas with Scikit-learn. You can easily <a href=\"https:\/\/ioflood.com\/blog\/java-array-to-list\/\">convert your DataFrames into arrays<\/a> that can be fed into Scikit-learn models.<\/p>\n<h3>Further Resources for Pandas Library<\/h3>\n<p>If you&#8217;re interested in learning more ways to utilize the Pandas library, here are a few resources that you might find helpful:<\/p>\n<ul>\n<li><a class=\"wp-editor-md-post-content-link\" href=\"https:\/\/ioflood.com\/blog\/how-to-use-pandas-merge-with-dataframe-objects\/\">This article<\/a> by IOFlood on explains how to use the Pandas Merge() function to combine two dataframes based on a common key.<\/p>\n<\/li>\n<li>\n<p><a class=\"wp-editor-md-post-content-link\" href=\"https:\/\/ioflood.com\/blog\/pandas-reset-index\/\">Reset Index | Step-by-Step Guide<\/a>: This will guide will walk you through the process of resetting indexes in pandas with the reset_index() function.<\/p>\n<\/li>\n<li>\n<p><a class=\"wp-editor-md-post-content-link\" href=\"https:\/\/pandas.pydata.org\/docs\/\" target=\"_blank\" rel=\"noopener\">Pandas documentation<\/a>: For further reading, the official Pandas documentation is a great resource.<\/p>\n<\/li>\n<li>\n<p><a class=\"wp-editor-md-post-content-link\" href=\"https:\/\/www.datacamp.com\/tutorial\/pandas\" target=\"_blank\" rel=\"noopener\">Pandas Tutorial &#8211; Learn Pandas by Examples<\/a>: A tutorial on Pandas by DataCamp, with numerous examples to enhance learning.<\/p>\n<\/li>\n<li>\n<p><a class=\"wp-editor-md-post-content-link\" href=\"https:\/\/www.w3schools.com\/python\/pandas\/default.asp\" target=\"_blank\" rel=\"noopener\">Python Pandas Tutorial<\/a>: A comprehensive tutorial on Python Pandas from W3Schools.<\/p>\n<\/li>\n<\/ul>\n<h2>Wrapping Up Data Analysis in Pandas<\/h2>\n<p>Throughout this guide, we&#8217;ve explored the various facets of Python Pandas, from its basic usage to advanced techniques. We&#8217;ve seen how it simplifies data manipulation, making it an essential tool in any data scientist&#8217;s arsenal.<\/p>\n<h3>Navigating Through Python Pandas<\/h3>\n<p>We started with the basics, creating DataFrames and performing simple data manipulations. We then moved on to more advanced operations like merging, grouping, and reshaping data. Along the way, we tackled common issues like handling missing data and type errors, providing practical solutions to these problems.<\/p>\n<h3>Exploring Alternatives: NumPy and Dask<\/h3>\n<p>While Pandas is a powerful library, it&#8217;s not the only one. We also discussed alternatives like NumPy and Dask, each with its own strengths. NumPy shines with numerical operations on large multi-dimensional arrays, while Dask excels at computations that don&#8217;t fit into memory.<\/p>\n<h3>The Role of Pandas in Data Analysis<\/h3>\n<p>Beyond its data manipulation capabilities, Python Pandas plays a crucial role in real-world data analysis. It&#8217;s instrumental in data cleaning and exploratory data analysis, and integrates well with other libraries for data visualization and machine learning.<\/p>\n<p>In conclusion, Python Pandas is a versatile and powerful library that simplifies data analysis in Python. Whether you&#8217;re a beginner just starting out or an experienced data scientist, mastering Pandas is a valuable skill that will undoubtedly enhance your data analysis workflow. Happy data analyzing!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Harnessing the power of Python for data analysis is a core aspect of our operations at IOFLOOD, and Pandas is a pivotal tool in this endeavor. Today&#8217;s article has been designed to assist our customers utilize the capabilities and advantages of Pandas on their dedicated server hosting platforms. In this comprehensive guide, we&#8217;ll start from [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":21259,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[121,123],"tags":[],"class_list":["post-4064","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programming-coding","category-python","cat-121-id","cat-123-id","has_thumb"],"_links":{"self":[{"href":"https:\/\/ioflood.com\/blog\/wp-json\/wp\/v2\/posts\/4064","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ioflood.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ioflood.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ioflood.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ioflood.com\/blog\/wp-json\/wp\/v2\/comments?post=4064"}],"version-history":[{"count":51,"href":"https:\/\/ioflood.com\/blog\/wp-json\/wp\/v2\/posts\/4064\/revisions"}],"predecessor-version":[{"id":21260,"href":"https:\/\/ioflood.com\/blog\/wp-json\/wp\/v2\/posts\/4064\/revisions\/21260"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ioflood.com\/blog\/wp-json\/wp\/v2\/media\/21259"}],"wp:attachment":[{"href":"https:\/\/ioflood.com\/blog\/wp-json\/wp\/v2\/media?parent=4064"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ioflood.com\/blog\/wp-json\/wp\/v2\/categories?post=4064"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ioflood.com\/blog\/wp-json\/wp\/v2\/tags?post=4064"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}