{"id":13599264,"url":"https://github.com/tusharnankani/whatsapp-chat-data-analysis","last_synced_at":"2025-09-11T16:03:37.925Z","repository":{"id":46552113,"uuid":"300849837","full_name":"tusharnankani/whatsapp-chat-data-analysis","owner":"tusharnankani","description":"An Exhaustive WhatsApp Chat Data Analysis.","archived":false,"fork":false,"pushed_at":"2024-03-07T03:53:41.000Z","size":25818,"stargazers_count":74,"open_issues_count":3,"forks_count":25,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-05-07T02:05:37.223Z","etag":null,"topics":["data-analysis","data-mining","data-visualization","exploratory-data-analysis","hacktoberfest","visualization","whatsapp","whatsapp-analysis"],"latest_commit_sha":null,"homepage":"https://medium.com/@tusharnankani/an-exhaustive-whatsapp-chat-data-analysis-f8421a845c30","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tusharnankani.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-10-03T10:05:52.000Z","updated_at":"2025-05-03T22:18:41.000Z","dependencies_parsed_at":"2024-11-07T00:44:14.215Z","dependency_job_id":null,"html_url":"https://github.com/tusharnankani/whatsapp-chat-data-analysis","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/tusharnankani/whatsapp-chat-data-analysis","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tusharnankani%2Fwhatsapp-chat-data-analysis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tusharnankani%2Fwhatsapp-chat-data-analysis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tusharnankani%2Fwhatsapp-chat-data-analysis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tusharnankani%2Fwhatsapp-chat-data-analysis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tusharnankani","download_url":"https://codeload.github.com/tusharnankani/whatsapp-chat-data-analysis/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tusharnankani%2Fwhatsapp-chat-data-analysis/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274665010,"owners_count":25327093,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-11T02:00:13.660Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data-analysis","data-mining","data-visualization","exploratory-data-analysis","hacktoberfest","visualization","whatsapp","whatsapp-analysis"],"created_at":"2024-08-01T17:01:01.511Z","updated_at":"2025-09-11T16:03:37.894Z","avatar_url":"https://github.com/tusharnankani.png","language":"Jupyter Notebook","funding_links":[],"categories":["Jupyter Notebook"],"sub_categories":[],"readme":"# A Comprehensive Data Analysis on a WhatsApp Group Chat\n\n- Have a look at a **detailed [Medium Article](https://medium.com/@tusharnankani/an-exhaustive-whatsapp-chat-data-analysis-f8421a845c30)** for this project!\n- [Whatsapp Chat Data Analysis - Notebook on GitHub](https://github.com/tusharnankani/whatsapp-chat-data-analysis/blob/main/whatsapp-data-analysis.ipynb)\n\nIf the Notebook fails to load:\n- Check the complete code, on [this basic HTML Page](https://tusharnankani.github.io/whatsapp-chat-data-analysis/).\n- [Whatsapp Chat Data Analysis - Notebook on Jovian](https://jovian.ml/tusharnankani3/whatsapp-data-analysis)\n\n## *Overview*\n\n- [Introduction](#introduction)\n- [Data Retrieval \u0026 Preprocessing](#data-retrieval--preprocessing)\n- [Exploratory Data Analysis](#exploratory-data-analysis)\n\n  - **[Overall frequency of total messages on the group.](#the-overall-frequency-of-total-messages-on-the-group)**\n  - **[Top 10 most active days.](#top-10-most-active-days)**\n  - **[Top 10 active users on the group (with a twist)](#top-10-active-users-on-the-group)**\n    - Ghosts present in the group. (shocking results.)\n  - **[Top 10 users most sent media.](#the-top-10-users-who-send-the-most-media)**\n  - **[Top 10 most used emojis.](#top-10-most-used-emojis)**\n  - **[Most active hours and days.](#top-10-most-used-emojis)**\n    - Heatmaps of weekdays and months.\n    - Most active hours, weekdays, and months.\n  - **[Most used words - WordCloud](#most-used-words-in-the-whole-chat)**\n  \n- [Conclusion](#conclusion)\n\n# *Introduction*:\n\nWhatsapp has quickly become the world’s most popular text and voice messaging application. Specializing in cross-platform messaging with over 1.5 billion monthly active users, this makes it the most popular mobile messenger app worldwide.\n\n- I thought of various projects on which I could analyse data like - *Air Quality Index* or The *cliched* *Covid-19 Data Analysis*.\n\n- But I thought why not do **Data Analysis on a WhatsApp group chat** of *college students* and find out interesting insights about *who is most active, who are ghosts (the ones who do not reply), my sleep schedule,* *the most used emoji, the most actives times of the day, or does the group use phones during college teaching hours?* \n\n- These would be some interesting insights for sure, more for me than for you, since the people in this chat are people I know personally.\n\n# *Data Retrieval \u0026 Preprocessing*\n### Beginning. How do I export my conversations? From Where To Obtain Data?\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/extras/4-the-office.gif\" width=350\u003e\n\u003c/p\u003e\n\n- The first step is **Data Retrieval \u0026 Preprocessing**, that is to **gather the data**. WhatsApp allows you to **export your chats** through a **.txt format**. \n\n- Go to the respective chat, which you want to export!\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/extras/whatsapp-options.jpg\" width=150 align=\"center\"\u003e\n\u003c/p\u003e\n\n- Tap on **options**, click on **More**, and **Export Chat.**\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/extras/whatsapp-export-chat.jpg\" width=150\u003e\n\u003c/p\u003e\n\n- I will be Exporting **Without Media.**\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/extras/whatsapp-media.jpg \" width=200 length=150 align=\"center\"\u003e\n\u003c/p\u003e\n\n#### NOTE:\n- Without media: exports about **40k messages **\n- With media: exports about *10k messages along with pictures/videos* \n- While exporting data, *avoid including media files* because if the number of media files is greater than certain figure then not all the media files are exported.\n\n### Opening this .txt file up, you get messages in a format that looks like this:\n\n\u003cimg src=\"assets/extras/textfile.png\" align=\"center\"\u003e\n\n\n# *Exploratory Data Analysis*\n\n### *Importing Necessary Libraries*\n\nWe will be using :\n1. **Regex (re)** to extract and manipulate strings based on specific patterns.\n    - References:\n        - [Regex - Python Docs](https://docs.python.org/3/library/re.html)\n        - [Regex cheatsheet](https://www.rexegg.com/regex-quickstart.html)\n        - [Regex Test - live](https://regexr.com/)\n        - [Datetime Format](http://strftime.org/)\n2. **pandas** for analysis.\n3. **matlotlib** and **seaborn** for visualization.\n4. **emoji** to deal with emojis.\n    - References:\n        - [Python Docs](https://pypi.org/project/emoji/)\n        - [Emoji](https://github.com/carpedm20/emoji)\n        - [EMOJI CHEAT SHEET](https://www.webfx.com/tools/emoji-cheat-sheet/)\n5. **wordcloud** for the most used words.\n6. **datetime** for datetime manipulation.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/code_snippets/carbon (1).png\"\u003e\n\u003c/p\u003e\n\n### *Preparation and reading data*\n\nSince WhatsApp texts are multi-line, you cannot just read the file line by line and get each message that you want. Instead, you need a way to identify if a line is a new message or part of an old message. You could do this use regular expressions, but I went forward with a more simple method, which splits the time formats and creates a DataFrame from a Raw .txt file.\n\nWhile reading each line, I split it based on a comma and take the first item returned from the `split()` function. If the line is a new message, the first item would be a valid date, and it will be appended as a new message to the list of messages. If it’s not, the message is part of the previous message, and hence, will be appended to the end of the previous message as one continuous message.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/code_snippets/carbon (0).png\"\u003e\n\u003c/p\u003e\n\n# *Pre-Processing*\n\nFirstly, let’s load our .txt into a DataFrame.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/code_snippets/carbon (2).png\"\u003e\n\u003c/p\u003e\n\nThe dataset now contains 3 columns - DateTime String, User, and Message sent and their respective entries in 13655 rows.\n\n**Let’s create some helper columns for better analysis!**\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/code_snippets/carbon (3).png\"\u003e\n\u003c/p\u003e\n\nNow that we have a clean DataFrame to work with, it’s time to perform analysis on it. **Let’s start Visualizing!**\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/extras/1-gina.gif\" width=350\u003e\n\u003c/p\u003e\n\n# *Exploratory Data Analysis*\n\nAt this point, I think I’m ready to start my analysis so I will plot a simple line graph to see the frequency of messages over the months. \n\n## The overall frequency of total messages on the group\n\nI expect to see a nice line graph with crests and troughs in odd places.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/code_snippets/carbon (4).png\"\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/code_snippets/carbon (5).png\"\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/plots/msg_plots.png\"\u003e\n\u003c/p\u003e\n\n## Top 10 Most Active Days\nGrouping the data set by date and sorting values according to the number of messages per day.\n\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/code_snippets/carbon (6).png\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/code_snippets/carbon (7).png\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/plots/top10_days.png\"\u003e\n\u003c/p\u003e\n\nApparently, the group was very active on 13th September’20 because we were discussing fundamental yet tricky and brain-wracking “Guess the Output” Java questions!\n\n## Top 10 active users on the group\n\nBefore analyzing, the top users, let’s find out how many ghosts are there in the group!\n\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/code_snippets/carbon (8).png\"\u003e\n\u003c/p\u003e\n\n#### Shocking Result\n\n- Total number of people who have sent at least one message on the group is 154.\n- BUT, the total number of participants are 237.\n- That means **81** people in the group have **not sent even a single message throughout these 9 months and 13500+ messages**.\n\n\n### Now, *pre-processing the top 10 active users.*\n\nGrouping the dataset by the user, and sorting according to the message count.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/code_snippets/carbon (9).png\"\u003e\n\u003c/p\u003e\n\nAnd, we will be *replacing names by their initials* for **Better Visualization**, and also to maintain anonymity.\n\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/code_snippets/carbon (10).png\"\u003e\n\u003c/p\u003e\n\nAlso, I will be customizing the styles for **Better Visualization and More Readability** using *matplotlib*.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/code_snippets/carbon (11).png\"\u003e\n\u003c/p\u003e\n\n**My first plot will be the total number of messages sent per person.** For this, a simple *seaborn countplot* will suffice.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/code_snippets/carbon (13).png\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/plots/top10users.png\"\u003e\n\u003c/p\u003e\n\n**TK** beats everyone by a mile, with **2500+ messages**, followed by **DL** with around **2000 messages**.\n\n#### But here comes the twist!\n\nNow, I will plot the **Average Message Length of the messages sent by the Top 10 most active users**. *Let’s see the results now!*\n\n### *Comparing the top 10 users!*\n\nNow, first things first, since almost all the plots will be *comparing one person with another*, I’ll assign a **specific color to each person** so that it becomes **easy to identify each person among multiple plots**.\n\nI could’ve used *seaborn’s color palette* but:\n\n— Seaborn assigns *default colors* itself, but I wanted ***the color of a certain person to remain the same, no matter the plot.***\n\n— Also, I wanted to try some different colors so I grabbed my color palette from [this website](https://coolors.co/).\n#### Defining a function to tackle the problem.\n\nI’m defining this function ***to maintain consistent colors for each person across all plots***. Since the order will vary depending on the plot, this is passed to the function which will *reorder colors in a particular order so that the color of a certain person remains the same no matter the plot*. This will help maintain ***consistency and readability*** amongst the many graphs I will be plotting.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/code_snippets/carbon (14).png\"\u003e\n\u003c/p\u003e\n\nNext, I made a dictionary where **each key is the name and the value for each would be their assigned color**. I create a function that reorders colors given a list of names to match the ordering of the plot. \n\nThis function takes the ordered names as input and returns a reordered list of colors. This list has to be passed into the **`palette`** argument in a **seaborn plotting function.**\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/code_snippets/carbon (15).png\"\u003e\n\u003c/p\u003e\n\nNow we have a *nice set of colors for each person* which we can visualize using **palplot**.\n\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/plots/top10_palette.png\"\u003e\n\u003c/p\u003e\n\nThe next one would be the average message length for each person. For this, I create a new column called `message_length` which contains the length of each message which I get by using a lambda function which returns the length of a given message. I just group the DataFrame by name and then apply `mean()` on the returned groupby object.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/code_snippets/carbon (16).png\"\u003e\n\u003c/p\u003e\n\n- **Plotting multiple charts in a grid**\n\nMatplotlib and Seaborn also support plotting multiple charts in a grid, using `plt.subplots`, which returns a set of axes that can be used for plotting.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/code_snippets/carbon (17).png\"\u003e\n\u003c/p\u003e\n\n#### Let’s see the plots, simultaneously for **some interesting results**!\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/plots/top10_msg_plots_diff.png\"\u003e\n\u003c/p\u003e\n\nIt’s really interesting to see plots like this side by side, because here comes the twist:\n\n- Ironically, TK, the person who sent the **most amount of texts** (2000+), has the least messages’ length on average. This means this person sends broken and many WhatsApp messages in one go.\n\nHere is a snippet of how TK sends messages:\n\n\u003cp\u003e\n\u003cimg src=\"assets/extras/TK_MSG_Snippet.png\" width=350\u003e\n\u003c/p\u003e\n\n- Also, we can see that, I have sent *less number of messages (7th) on average* while having a ***relatively longer message length (1st)***.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/extras/2-bragging.gif\"\u003e\n\u003c/p\u003e\n\nAlright, moving on to a more detailed analysis of the dataset!\n\n## The Top 10 users who send the most media\n\nThe exported chats were exported without any media files. Any message that contained media was indicated with *‘\u003cMedia Omitted\u003e ’*. **We can use this to filter out and see who sends the most media.**\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/code_snippets/carbon (18).png\"\u003e\n\u003c/p\u003e\n\n### Which user sends the most media?\nAgain, a simple plot using seaborn, but a different Color Palette: *CMRmap*.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/code_snippets/carbon (19).png\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/plots/top10media.png\"\u003e\n\u003c/p\u003e\n\n**TK and DL** are beating everyone by a *huge margin*. They, also rank the *top in total messages*, though *last in average message length*. ***Most dedicated contributor award goes to TK and DL!***\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://media.giphy.com/media/l0MYt5jPR6QX5pnqM/giphy.gif\" width=400\u003e\n\u003c/p\u003e\n\n## Top 10 most used Emojis\n\nWill be using the `emoji` module, that was imported earlier.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/code_snippets/carbon (20).png\"\u003e\n\u003c/p\u003e\n\nWill create another helper column using `emoji.demojize(\"\u003cemoji\u003e\")`, since **emojis will not be rendered in the plots**.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/code_snippets/carbon (21).png\"\u003e\n\u003c/p\u003e\n\nSince the emojis **will not be rendered into the plots**, here is how the *top10emojis dataset looks like*!\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/extras/top10emojis_df.png\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/extras/3-gina-emoji.gif\"\u003e\n\u003c/p\u003e\n\n### Which Emoji is the most used in the chat?\n\nThis time, it will be plotted a bit differently. Numbers will be plotted on x-direction.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/code_snippets/carbon (22).png\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/plots/top10emoji.png\"\u003e\n\u003c/p\u003e\n\n- Not that it is worth anything, but “😂” beats everyone by a *huge margin!*\n\n## Most active days, most active hours, most active months.\n\nNow, I will be analyzing the timely usage of the groups.\n\n#### Pre-processing for most active hours.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/code_snippets/carbon (23).png\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/code_snippets/carbon (24).png\"\u003e\n\u003c/p\u003e\n\n### Which hour of the day are most messages exchanged?\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/plots/most_active_hours.png\"\u003e\n\u003c/p\u003e\n\nInterestingly, the group is most active around **midnight**, followed by *afternoon*.\n\n### Pre-processing Weekdays and Months\n\nNow, irrespective of the number of messages per day or month, we want the order to be remain the same, hence we will be using the order argument in seaborn.\n\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/code_snippets/carbon (25).png\"\u003e\n\u003c/p\u003e\n\n- Plotting multiple charts using `plt.subplots`.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/code_snippets/carbon (26).png\"\u003e\n\u003c/p\u003e\n\n\n### Visualization\n\nNow, we will be plotting ***grouped by day and respective group by month simultaneously***, to see some interesting results.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/plots/days_and_month.png\"\u003e\n\u003c/p\u003e\n\n## *Inferences*\n\n- The group is **most active on Sundays**, and **least active on Mondays** (probably *Monday Blues*.)\n\n- Also, **Saturday** has a *minor drop*, this is probably due to the fact that Saturday is the *first weekend after Friday* and people are usually taking a *rest* and doing other activities than messaging on their phones.\n\n- The group has been recently very active, in September.\n\n\nTo get a clearer understanding, we will plot a combined graph — **Heatmap**.\n\n#### Now, we will plot a heatmap, combining the above to bar plots, for a better understanding!\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/code_snippets/carbon (27).png\"\u003e\n\u003c/p\u003e\n\n### Heatmap of Month sent and Day sent\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/plots/month_day_heatmap.png\"\u003e\n\u003c/p\u003e\n\n##### Inferences\n\n- The group is more active on weekends, throughout the months.\n- September has the most lighter blue shades and more yellow gradients.\n- This gives a *combined analysis*, which is really helpful in **real-time projects**.\n\n## Most Used Words in the whole chat.\n\nI will be using the `wordcloud` module, to create a WordCloud of the **most used words**! I will be *adding some common words, to the stopwords*, such that it will not be included the WordCloud.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/code_snippets/carbon (28).png\"\u003e\n\u003c/p\u003e\n\n### Most Used Words in the chat\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/plots/wordcloud.png\"\u003e\n\u003c/p\u003e\n\n# *Conclusion*\n\n**That’s it from my end! I hope you learned and enjoyed a lot!**\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/extras/5-the-office.gif\"\u003e\n\u003c/p\u003e\n\nIt’s really interesting to see the texting habits of people and incidents of daily life reflected in the text. I suggest you take a look at my code and apply it to your own group chats. However, some modifications will have to be done at the DataFrame creation part. \n\nIf you’re interested, shoot me a message and I’ll help you out.\n\n## Where to go from here?\n\n- Extending this Whatsapp Analysis Project!\n    - Adding a **Sentiment Analyser to the texts** — *Swear Words \u0026 Sentiments*!\n    - Libraries called `profanity_check`, `TextBlob`, `VADER` (Valence Aware Dictionary and Sentiment Reasoner) from NTLK and TextBlob.\n\n- Instagram Data Analysis\n- Play Store Data Analysis\n- Exploring more datasets! It is never-ending, as there can be **Infinite Stories with Data**!\n- Once, done with enough Data Analysis, try making Datasets, scraping Data from websites and creating Interesting Datasets!\n\n\u003e And the best time to do it is right now, today, because tomorrow, typically means never.\n\n\n***Thank you for reading!*** *Let me know what you thought about this project.*\n\n# Author \n- [Tushar Nankani](https://www.linkedin.com/in/tusharnankani/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftusharnankani%2Fwhatsapp-chat-data-analysis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftusharnankani%2Fwhatsapp-chat-data-analysis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftusharnankani%2Fwhatsapp-chat-data-analysis/lists"}