<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Suresh Sonwane</title>
    <description>The latest articles on DEV Community by Suresh Sonwane (@suresh_sonwane).</description>
    <link>https://dev.to/suresh_sonwane</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F253284%2F21bfe870-0a97-44db-862e-f00a34330fcf.jpeg</url>
      <title>DEV Community: Suresh Sonwane</title>
      <link>https://dev.to/suresh_sonwane</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/suresh_sonwane"/>
    <language>en</language>
    <item>
      <title>RFM Analysis in Python | Simplified.</title>
      <dc:creator>Suresh Sonwane</dc:creator>
      <pubDate>Wed, 02 Mar 2022 18:44:27 +0000</pubDate>
      <link>https://dev.to/suresh_sonwane/rfm-analysis-in-python-simplified-42ed</link>
      <guid>https://dev.to/suresh_sonwane/rfm-analysis-in-python-simplified-42ed</guid>
      <description>&lt;p&gt;&lt;strong&gt;An automated way to perform RFM analysis.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In this tutorial, we will perform RFM analysis using a python library called "rfm".&lt;/p&gt;




&lt;p&gt;We will be using &lt;a href="https://www.kaggle.com/carrie1/ecommerce-data" rel="noopener noreferrer"&gt;Kaggle E-commerce&lt;/a&gt; dataset.&lt;/p&gt;

&lt;p&gt;1 . Install Package using:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ pip install rfm
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;2 . Read the transaction dataset:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt; import pandas as pd
&amp;gt;&amp;gt;&amp;gt; df = pd.read_csv('~./data.csv')
# create new column for transaction amount for each record
&amp;gt;&amp;gt;&amp;gt; df['Amount'] = df['Quantity'] * df['UnitPrice']
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;3 . Start RFM Analysis using:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt; from rfm import RFM
# this will take some time depending upon size of the dataset. 
# enter the required columns names: customerid, transaction date and amount
&amp;gt;&amp;gt;&amp;gt; r = RFM(df, customer_id='CustomerID', transaction_date='InvoiceDate', amount='Amount')
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;4 . See the results using:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt; r.rfm_table
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo5yar45pk2frldh6rbqs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo5yar45pk2frldh6rbqs.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ta-Da&amp;nbsp;!!! It is that&amp;nbsp;simple.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This way it automatically calculates recency, frequency, monetary values as well as rfm scores and along with their segments for you. You can save above results in memory by using pd.to_csv method.&lt;br&gt;
The rfm package offers further functionalities and analytical graphs for your analysis reports for those who want it all.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Additional Extra Features:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;1 . See the number of customers per segment or segment distribution table using:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt; r.segment_table
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkk6yhl2j3j6hhfihwneg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkk6yhl2j3j6hhfihwneg.png" alt="Image description"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt; r.plot_segment_distribution()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fow8mvm6zm3pfkh7i7zhb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fow8mvm6zm3pfkh7i7zhb.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Find out more:&lt;br&gt;
&lt;a href="https://medium.com/@suresh-sonwane/rfm-analysis-in-python-simplified-f41f7cb3f344" rel="noopener noreferrer"&gt;Medium Blog link&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/sonwanesuresh95/rfm" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;br&gt;
&lt;a href="https://pypi.org/project/rfm" rel="noopener noreferrer"&gt;PyPi&lt;/a&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>rfmanalysis</category>
      <category>customersegmentation</category>
    </item>
  </channel>
</rss>
