feed-generator/Untitled.ipynb

1975 lines
178 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"cells": [
{
"cell_type": "code",
"execution_count": 9,
"id": "c0c52617",
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"from ipywidgets import widgets\n",
"from IPython.display import display\n",
"\n",
"%matplotlib notebook"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "d20f8fbf",
"metadata": {},
"outputs": [],
"source": [
"posts = pd.read_sql_table('post', 'sqlite:///db.sqlite')\n",
"likes = pd.read_sql_table('like', 'sqlite:///db.sqlite')\n",
"reposts = pd.read_sql_table('repost', 'sqlite:///db.sqlite')\n",
"follows = pd.read_sql_table('follow', 'sqlite:///db.sqlite')\n"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "7140b9bd",
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "169f0c9f67a84aecb38cb8c94336f656",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Tab(children=(Output(), Output(), Output(), Output()), selected_index=0, titles=('posts', 'likes', 'reposts', …"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tabs = []\n",
"for tab in (posts, likes, reposts, follows):\n",
" widg = widgets.Output()\n",
" with widg:\n",
" display(tab)\n",
" tabs.append(widg)\n",
" \n",
"tab = widgets.Tab(children=tabs, titles = ['posts', 'likes', 'reposts', 'follows'])\n",
"tab"
]
},
{
"cell_type": "markdown",
"id": "bc1b5a30",
"metadata": {},
"source": [
"Basic Summaries\n"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "689b5e00",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"Timespan: 1 days 00:29:00.608000\n",
"Posting Accounts: 134910\n",
"Liking Accounts: 201814\n",
"Accounts that only posted: 43655\n",
"Accounts that only liked: 110559\n",
"Accounts that posted and liked: 91255\n",
"\n"
]
}
],
"source": [
"posts['indexedAt'] = pd.to_datetime(posts['indexedAt'])\n",
"span = posts['indexedAt'].max() - posts['indexedAt'].min()\n",
"posting_accounts = set(posts['authorDid'])\n",
"liking_accounts = set(likes['authorDid'])\n",
"posters_only = posting_accounts - liking_accounts\n",
"likers_only = liking_accounts - posting_accounts\n",
"posts_and_likes = posting_accounts.intersection(liking_accounts)\n",
"\n",
"print(f\"\"\"\n",
"Timespan: {span}\n",
"Posting Accounts: {len(posting_accounts)}\n",
"Liking Accounts: {len(liking_accounts)}\n",
"Accounts that only posted: {len(posters_only)}\n",
"Accounts that only liked: {len(likers_only)}\n",
"Accounts that posted and liked: {len(posts_and_likes)}\n",
"\"\"\")"
]
},
{
"cell_type": "markdown",
"id": "040f4a01",
"metadata": {},
"source": [
"# Interaction Distributions\n",
"\n",
"Likes per post"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "3c6a03ff",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>cid</th>\n",
" <th>likes</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>bafyreia222dxd77nwlefofspvv4zyo4vcyidfm53vxhzl...</td>\n",
" <td>28</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>bafyreia222hs2ffawpplfo3nfs2g4ibqleg7exybmxx4m...</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>bafyreia222p4uouja7nmodbin7msvfyky65zd4epn4fqq...</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>bafyreia222tx72zwcfs5mzdtssw4xcpwvmzsan6lk4yrh...</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>bafyreia223lumxspphn5wcbw2v65aeon3l2t3frtgrik5...</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>637533</th>\n",
" <td>bafyreihzzyn6h4roumu7cebt2ywblpxryz42tt4yd66vb...</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>637534</th>\n",
" <td>bafyreihzzyzsfj2qo4lonn3ny6kht6xy4squzfmha4luf...</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>637535</th>\n",
" <td>bafyreihzzzd6jvfod4gmeucp4wgtn2fzxw6lggztkmeum...</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>637536</th>\n",
" <td>bafyreihzzzfwyi7hxm5wusper7hn6qbi2bx6gibiz4skm...</td>\n",
" <td>95</td>\n",
" </tr>\n",
" <tr>\n",
" <th>637537</th>\n",
" <td>bafyreihzzzgh23q2dplc32rqfuuqn6seimmujmtrq66dc...</td>\n",
" <td>19</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>637538 rows × 2 columns</p>\n",
"</div>"
],
"text/plain": [
" cid likes\n",
"0 bafyreia222dxd77nwlefofspvv4zyo4vcyidfm53vxhzl... 28\n",
"1 bafyreia222hs2ffawpplfo3nfs2g4ibqleg7exybmxx4m... 1\n",
"2 bafyreia222p4uouja7nmodbin7msvfyky65zd4epn4fqq... 5\n",
"3 bafyreia222tx72zwcfs5mzdtssw4xcpwvmzsan6lk4yrh... 1\n",
"4 bafyreia223lumxspphn5wcbw2v65aeon3l2t3frtgrik5... 3\n",
"... ... ...\n",
"637533 bafyreihzzyn6h4roumu7cebt2ywblpxryz42tt4yd66vb... 1\n",
"637534 bafyreihzzyzsfj2qo4lonn3ny6kht6xy4squzfmha4luf... 1\n",
"637535 bafyreihzzzd6jvfod4gmeucp4wgtn2fzxw6lggztkmeum... 2\n",
"637536 bafyreihzzzfwyi7hxm5wusper7hn6qbi2bx6gibiz4skm... 95\n",
"637537 bafyreihzzzgh23q2dplc32rqfuuqn6seimmujmtrq66dc... 19\n",
"\n",
"[637538 rows x 2 columns]"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"post_likes = likes.groupby('subjectCid'\n",
" ).agg(likes=('uri', 'count')\n",
" ).reset_index(\n",
" ).rename(columns={'subjectCid':'cid'})\n",
"post_likes"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "ff9773ef",
"metadata": {},
"outputs": [],
"source": [
"posts = posts.merge(post_likes, left_on='cid', right_on='cid', how='left')\n",
"posts.loc[posts['likes'].isna(), 'likes'] = 0"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "2523ba0a",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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6WGJaemBpbS0VEOGDNHcuXPr1X7lypW66qqrtHTpUmVlZWncuHGaNGmSvv76a7d2AwYM0MGDB12vVatWeVoaAAC4QHmnAkusxYaEAjw9YMKECZowYUK928+ZM8ft6z/96U9699139f7772vYsGGnCwkIUExMjKflAACARnS6h8U6S5olL8xhcTqdKi4uVnh4uNv27du3Ky4uTj169NCNN96o3NzcOs9RVlYmh8Ph9gIAABfO1cPS0oeELtQzzzyjkpISXX/99a5tiYmJSktL07Jly/Tiiy9q165dGjt2rIqLi2s9R2pqqkJDQ12v+Pj45iofAIBWq7LKqUPFBBa99tprevzxx7V48WJFRUW5tk+YMEHXXXedBg8erOTkZC1dulSFhYVavHhxreeZOXOmioqKXK+9e/c210cAAKDVOlRcJqeRAvxs6mShBx9KDZjD0lCLFi3SLbfcojfffFNJSUnnbBsWFqY+ffooJyen1v12u112u7UuJAAALd2+Y9VLmuPC2srfzzo3jZOaqYfl9ddf14wZM/T6669r4sSJ521fUlKiHTt2KDY2thmqAwAAkpR79LgkKT7cWhNupQb0sJSUlLj1fOzatUvZ2dkKDw9X165dNXPmTO3fv18LFy6UVD0MNH36dD333HNKTExUXl6eJKlt27YKDQ2VJN1///2aNGmSunXrpgMHDmj27Nny9/fX1KlTG+MzAgCAeqgJLF3Dg71cydk87mFZt26dhg0b5lqSnJKSomHDhmnWrFmSpIMHD7qt8HnppZdUWVmpO++8U7Gxsa7XPffc42qzb98+TZ06VX379tX111+vTp06afXq1YqMjLzQzwcAAOppn6uHxXqBxeMeliuuuELGmDr3p6WluX2dkZFx3nMuWrTI0zIAAEAjcw0JdbReYOFZQgAAQJK091grGhICAACtz8mKKuU7yiQRWAAAgEXtO9W70t4eoLDgNl6u5mwEFgAAoL1Hq+/BEh8eLJvNWvdgkQgsAABAZ064td49WCQCCwAAkLXvwSIRWAAAgKTdBaWSpG6dCCwAAMCidhwukST1jGrv5UpqR2ABAMDHlVVWuYaEekUSWAAAgAXtOXJcTiN1sAcosoPd2+XUisACAICP23GoejioR1R7Sy5plggsAAD4PNf8lch2Xq6kbgQWAAB83I7D1SuEelp0/opEYAEAwOed7mEh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0SKtW7dOL730kqTqrvB7771XTzzxhHr37u1a1hwXF6fJkyc33icFAAAtlseBZcqUKTp8+LBmzZqlvLw8DR06VMuWLXNNms3NzZWf3+mOm0svvVSvvfaaHn30UT3yyCPq3bu3lixZ4roHiyQ9+OCDKi0t1W233abCwkKNGTNGy5Yt4x4sAABAUgPuw2JF3IcFAICWx5Pf3w26NT8AAEBzIrAAAADLI7AAAADLI7AAAADLI7AAAADLI7AAAADLI7AAAADLI7AAAADLI7AAAADL8/jW/FZUc7Neh8Ph5UoAAEB91fzers9N91tFYCkuLpYkxcfHe7kSAADgqeLiYoWGhp6zTat4lpDT6dSBAwfUoUMH2Wy2Rj23w+FQfHy89u7dy3OKxPU4E9fCHdfDHdfjNK6FO67HacYYFRcXKy4uzu3BybVpFT0sfn5+6tKlS5O+R0hIiM9/Y52J63Ea18Id18Md1+M0roU7rke18/Ws1GDSLQAAsDwCCwAAsDwCy3nY7XbNnj1bdrvd26VYAtfjNK6FO66HO67HaVwLd1yPhmkVk24BAEDrRg8LAACwPAILAACwPAILAACwPAILAACwPALLecydO1fdu3dXUFCQEhMTtXbtWm+XdE4rV67UpEmTFBcXJ5vNpiVLlrjtN8Zo1qxZio2NVdu2bZWUlKTt27e7tTl69KhuvPFGhYSEKCwsTDfffLNKSkrc2mzYsEFjx45VUFCQ4uPj9fTTT59Vy5tvvql+/fopKChIgwYN0tKlSz2u5UKkpqZq5MiR6tChg6KiojR58mRt3brVrc3Jkyd15513qlOnTmrfvr1+9rOfKT8/361Nbm6uJk6cqODgYEVFRemBBx5QZWWlW5uMjAxdfPHFstvt6tWrl9LS0s6q53zfS/Wp5UK8+OKLGjx4sOtmVaNHj9aHH37ok9fi+5588knZbDbde++9HtXQWq7HY489JpvN5vbq16+fT16LGvv379cvfvELderUSW3bttWgQYO0bt06135f+llqGQZ1WrRokQkMDDSvvPKK2bx5s7n11ltNWFiYyc/P93ZpdVq6dKn57W9/a95++20jybzzzjtu+5988kkTGhpqlixZYr755hvz4x//2CQkJJgTJ0642owfP94MGTLErF692nz++eemV69eZurUqa79RUVFJjo62tx4441m06ZN5vXXXzdt27Y1//jHP1xtvvjiC+Pv72+efvpp8+2335pHH33UtGnTxmzcuNGjWi5EcnKyefXVV82mTZtMdna2ueaaa0zXrl1NSUmJq83tt99u4uPjTXp6ulm3bp255JJLzKWXXuraX1lZaQYOHGiSkpLM119/bZYuXWoiIiLMzJkzXW127txpgoODTUpKivn222/N3/72N+Pv72+WLVvmalOf76Xz1XKh3nvvPfPBBx+Ybdu2ma1bt5pHHnnEtGnTxmzatMnnrsWZ1q5da7p3724GDx5s7rnnnnrX0Jqux+zZs82AAQPMwYMHXa/Dhw/75LUwxpijR4+abt26mZtuusmsWbPG7Ny503z00UcmJyfH1caXfpZaBYHlHEaNGmXuvPNO19dVVVUmLi7OpKamerGq+vt+YHE6nSYmJsb8+c9/dm0rLCw0drvdvP7668YYY7799lsjyXz11VeuNh9++KGx2Wxm//79xhhj/v73v5uOHTuasrIyV5uHHnrI9O3b1/X19ddfbyZOnOhWT2Jiovmf//mfetfS2A4dOmQkmc8++8z1fm3atDFvvvmmq82WLVuMJJOZmWmMqQ6Afn5+Ji8vz9XmxRdfNCEhIa7P/+CDD5oBAwa4vdeUKVNMcnKy6+vzfS/Vp5am0LFjR/PPf/7TZ69FcXGx6d27t1mxYoW5/PLLXYHF167H7NmzzZAhQ2rd52vXwpjqn2djxoypc7+v/yz1FoaE6lBeXq6srCwlJSW5tvn5+SkpKUmZmZlerKzhdu3apby8PLfPFBoaqsTERNdnyszMVFhYmEaMGOFqk5SUJD8/P61Zs8bV5gc/+IECAwNdbZKTk7V161YdO3bM1ebM96lpU/M+9amlsRUVFUmSwsPDJUlZWVmqqKhwq6Ffv37q2rWr2/UYNGiQoqOj3T6Hw+HQ5s2bXW3O9Vnr871Un1oaU1VVlRYtWqTS0lKNHj3aZ6/FnXfeqYkTJ55Vsy9ej+3btysuLk49evTQjTfeqNzcXJ+9Fu+9955GjBih6667TlFRURo2bJhefvll135f/1nqLQSWOhQUFKiqqsrtL6AkRUdHKy8vz0tVXZiaus/1mfLy8hQVFeW2PyAgQOHh4W5tajvHme9RV5sz95+vlsbkdDp177336rLLLtPAgQNdNQQGBiosLOycdTb0szocDp04caJe30v1qaUxbNy4Ue3bt5fdbtftt9+ud955R/379/fJa7Fo0SKtX79eqampZ+3zteuRmJiotLQ0LVu2TC+++KJ27dqlsWPHqri42OeuhSTt3LlTL774onr37q2PPvpId9xxh379619rwYIFbp/JF3+WelOreFozcD533nmnNm3apFWrVnm7FK/q27evsrOzVVRUpP/85z+aPn26PvvsM2+X1ez27t2re+65RytWrFBQUJC3y/G6CRMmuP48ePBgJSYmqlu3blq8eLHatm3rxcq8w+l0asSIEfrTn/4kSRo2bJg2bdqkefPmafr06V6uznfRw1KHiIgI+fv7nzX7PD8/XzExMV6q6sLU1H2uzxQTE6NDhw657a+srNTRo0fd2tR2jjPfo642Z+4/Xy2N5a677tJ///tfffrpp+rSpYtre0xMjMrLy1VYWHjOOhv6WUNCQtS2bdt6fS/Vp5bGEBgYqF69emn48OFKTU3VkCFD9Nxzz/nctcjKytKhQ4d08cUXKyAgQAEBAfrss8/0/PPPKyAgQNHR0T51Pb4vLCxMffr0UU5Ojs99b0hSbGys+vfv77btoosucg2T+erPUm8jsNQhMDBQw4cPV3p6umub0+lUenq6Ro8e7cXKGi4hIUExMTFun8nhcGjNmjWuzzR69GgVFhYqKyvL1eaTTz6R0+lUYmKiq83KlStVUVHharNixQr17dtXHTt2dLU5831q2tS8T31quVDGGN11111655139MknnyghIcFt//Dhw9WmTRu3GrZu3arc3Fy367Fx40a3HzwrVqxQSEiI6wfa+T5rfb6X6lNLU3A6nSorK/O5a3HllVdq48aNys7Odr1GjBihG2+80fVnX7oe31dSUqIdO3YoNjbW5743JOmyyy476xYI27ZtU7du3ST53s9Sy/D2rF8rW7RokbHb7SYtLc18++235rbbbjNhYWFuM+Gtpri42Hz99dfm66+/NpLMs88+a77++muzZ88eY0z18rewsDDz7rvvmg0bNphrr7221qV4w4YNM2vWrDGrVq0yvXv3dluKV1hYaKKjo80vf/lLs2nTJrNo0SITHBx81lK8gIAA88wzz5gtW7aY2bNn17oU73y1XIg77rjDhIaGmoyMDLflmsePH3e1uf32203Xrl3NJ598YtatW2dGjx5tRo8e7dpfs1zz6quvNtnZ2WbZsmUmMjKy1uWaDzzwgNmyZYuZO3durcs1z/e9dL5aLtTDDz9sPvvsM7Nr1y6zYcMG8/DDDxubzWaWL1/uc9eiNmeuEvK163HfffeZjIwMs2vXLvPFF1+YpKQkExERYQ4dOuRz18KY6qXuAQEB5o9//KPZvn27+b//+z8THBxs/v3vf7va+NLPUqsgsJzH3/72N9O1a1cTGBhoRo0aZVavXu3tks7p008/NZLOek2fPt0YU70E7ne/+52Jjo42drvdXHnllWbr1q1u5zhy5IiZOnWqad++vQkJCTEzZswwxcXFbm2++eYbM2bMGGO3203nzp3Nk08+eVYtixcvNn369DGBgYFmwIAB5oMPPnDbX59aLkRt10GSefXVV11tTpw4Yf73f//XdOzY0QQHB5uf/OQn5uDBg27n2b17t5kwYYJp27atiYiIMPfdd5+pqKhwa/Ppp5+aoUOHmsDAQNOjRw+396hxvu+l+tRyIX71q1+Zbt26mcDAQBMZGWmuvPJKV1jxtWtRm+8HFl+6HlOmTDGxsbEmMDDQdO7c2UyZMsXtniO+dC1qvP/++2bgwIHGbrebfv36mZdeesltvy/9LLUKmzHGeKdvBwAAoH6YwwIAACyPwAIAACyPwAIAACyPwAIAACyPwAIAACyPwAIAACyPwAIAACyPwAIAACyPwAIAACyPwAIAACyPwAIAACyPwAIAACzv/wPEm4NihiYFXgAAAABJRU5ErkJggg==",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%matplotlib inline\n",
"y = posts.sort_values(by='likes')['likes'].cumsum()\n",
"plt.plot(y.reset_index(drop=True))\n",
"plt.title('Cumulative sum of likes by post')\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 51,
"id": "ee048235-1d61-4209-8c84-bf51e3f246dc",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjAAAAGzCAYAAAAxPS2EAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA+RklEQVR4nO3de3wU9b3/8ffmsksCbMIt2UQCjaJAuClBwx6VqqQEjLcjWhAUVITCCVbAAzTn8EPUajx4RRGotRrbggqtV1AwBAheAmJKyk1TVDRU2ATBZAEhIcn394fNyMotCaHLJK/n4zGPBzPzmZnPjOvm/Zj9zq7DGGMEAABgIyHBbgAAAKC+CDAAAMB2CDAAAMB2CDAAAMB2CDAAAMB2CDAAAMB2CDAAAMB2CDAAAMB2CDAAAMB2CDBAM/XVV1/J4XAoOzvbWnb77berVatWwWsKAOqIAAM0QdnZ2XI4HPrkk0+C3Qrq4eGHH9Ybb7wR7DYAWwgLdgMAgqNz5846dOiQwsPDg90K/uXhhx/WTTfdpBtuuCHYrQBnPe7AAM2Uw+FQixYtFBoaGuxWguLgwYPBbgHAaSDAAM3U8cbAHE9hYaE6dOigK664QgcOHJAkffPNN7rzzjsVGxsrl8ulHj166IUXXjhm22eeeUY9evRQZGSk2rRpo379+mnRokUnPd6aNWvkcDj06quv6n/+53/k8XjUsmVLXXfdddq5c+cx9evXr9fgwYMVFRWlyMhI/fznP9eHH34YUDNr1iw5HA5t27ZNI0aMUJs2bXTZZZedsIfaj+DWrl2rX/3qV2rXrp3cbrdGjRql77777pj6efPmqUePHnK5XIqPj1dGRobKysoCarZv366hQ4fK4/GoRYsW6tixo4YPH67y8nJJPwTKgwcP6qWXXpLD4ZDD4dDtt99+0msFNGd8hATghDZs2KC0tDT169dPb775piIiIlRSUqL+/fvL4XBo4sSJ6tChg959912NGTNGfr9fkyZNkiT9/ve/169//WvddNNNuueee3T48GFt2rRJ69ev14gRI0557IceekgOh0PTp09XaWmpnnrqKaWmpqqwsFARERGSpFWrVmnIkCFKTk7Wfffdp5CQEL344ou66qqr9P777+uSSy4J2OfNN9+s888/Xw8//LCMMafsYeLEiYqOjtasWbNUVFSk+fPn6+uvv7ZClvRDOLr//vuVmpqqCRMmWHUbNmzQhx9+qPDwcFVWViotLU0VFRW6++675fF49M0332jp0qUqKytTVFSU/vSnP+muu+7SJZdconHjxkmSzjvvvPr85wKaFwOgyXnxxReNJLNhw4YT1uzYscNIMi+++KK1bPTo0aZly5bGGGM++OAD43a7TXp6ujl8+LBVM2bMGBMXF2e+/fbbgP0NHz7cREVFme+//94YY8z1119vevToUe/eV69ebSSZc845x/j9fmv54sWLjSQzZ84cY4wxNTU15vzzzzdpaWmmpqbGqvv+++9NYmKi+cUvfmEtu++++4wkc8stt9Sph9rrl5ycbCorK63ls2fPNpLMm2++aYwxprS01DidTjNo0CBTXV1t1c2dO9dIMi+88IIxxpiNGzcaSWbJkiUnPW7Lli3N6NGj69Qj0NzxERKAY6xevVppaWkaOHCgXnvtNblcLkmSMUZ//etfde2118oYo2+//daa0tLSVF5err/97W+SpOjoaP3zn//Uhg0bGtTDqFGj1Lp1a2v+pptuUlxcnN555x1JP3y0tX37do0YMUJ79+61+jh48KAGDhyotWvXqqamJmCf48ePr1cP48aNCxjkPGHCBIWFhVk9rFy5UpWVlZo0aZJCQn58Ox07dqzcbreWLVsmSYqKipIkrVixQt9//329egBwfHyEBCDA4cOHlZ6eruTkZC1evFhhYT++TezZs0dlZWV67rnn9Nxzzx13+9LSUknS9OnTtXLlSl1yySXq0qWLBg0apBEjRujSSy+tUx/nn39+wLzD4VCXLl301VdfSfphTIkkjR49+oT7KC8vV5s2baz5xMTEOh37RD20atVKcXFxVg9ff/21JKlr164BdU6nU+eee661PjExUVOmTNETTzyhhQsX6vLLL9d1112nW2+91Qo3AOqHAAMggMvl0tVXX60333xTy5cv1zXXXGOtq72jceutt54wOPTu3VuS1L17dxUVFWnp0qVavny5/vrXv2revHmaOXOm7r///tPus7aXRx99VBdeeOFxa376pXy1Y2eC4fHHH9ftt9+uN998U++9955+/etfKysrS+vWrVPHjh2D1hdgVwQYAAEcDocWLlyo66+/XjfffLPeffddXXHFFZKkDh06qHXr1qqurlZqauop99WyZUsNGzZMw4YNU2VlpW688UY99NBDyszMVIsWLU66be0dllrGGH3++edWQKod4Op2u+vUS0Ns375dV155pTV/4MAB7d69W1dffbWkH75LR5KKiop07rnnWnWVlZXasWPHMX316tVLvXr10owZM/TRRx/p0ksv1YIFC/Tb3/5WkqyBwQBOjTEwAI7hdDr12muv6eKLL9a1116rjz/+WJIUGhqqoUOH6q9//au2bNlyzHZ79uyx/r13795j9pmUlCRjjI4cOXLKHv74xz9q//791vxf/vIX7d69W0OGDJEkJScn67zzztNjjz1mPd59ol4a6rnnngvodf78+aqqqrJ6SE1NldPp1NNPPx3wVNMf/vAHlZeXKz09XZLk9/tVVVUVsO9evXopJCREFRUV1rKWLVse8/g1gOPjDgzQhL3wwgtavnz5McvvueeeU24bERGhpUuX6qqrrtKQIUOUl5ennj176pFHHtHq1auVkpKisWPHKikpSfv27dPf/vY3rVy5Uvv27ZMkDRo0SB6PR5deeqliY2P16aefau7cuUpPTw8YnHsibdu21WWXXaY77rhDJSUleuqpp9SlSxeNHTtWkhQSEqLnn39eQ4YMUY8ePXTHHXfonHPO0TfffKPVq1fL7Xbr7bffrucVC1RZWamBAwfql7/8pYqKijRv3jxddtlluu666yT9cEcqMzNT999/vwYPHqzrrrvOqrv44ot16623Svrhce+JEyfq5ptv1gUXXKCqqir96U9/sgJhreTkZK1cuVJPPPGE4uPjlZiYqJSUlNM6B6DJCuozUADOiNrHgE807dy585SPUdf69ttvTVJSkvF4PGb79u3GGGNKSkpMRkaGSUhIMOHh4cbj8ZiBAwea5557ztrud7/7nRkwYIBp166dcblc5rzzzjNTp0415eXlJ+299jHql19+2WRmZpqYmBgTERFh0tPTzddff31M/caNG82NN95oHadz587ml7/8pcnNzbVqah+j3rNnT72uX15enhk3bpxp06aNadWqlRk5cqTZu3fvMfVz58413bp1M+Hh4SY2NtZMmDDBfPfdd9b6L7/80tx5553mvPPOMy1atDBt27Y1V155pVm5cmXAfj777DMzYMAAExERYSTxSDVwEg5j6vBtTgDwb7JmzRpdeeWVWrJkiW666aag9JCdna077rhDGzZsUL9+/YLSA4CTYwwMAACwHQIMAACwHQIMAACwHcbAAAAA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R6gBAICkeg7iNebkv36QkJCgvLy8U+6nc+fOeuedd05ac8UVV2jjxo31aQ8AADQT/BYSAACwHQIMAACwHQIMAACwHQIMAACwHQIMAACwHQIMAACwHQIMAACwHQIMAABoEIcjeMcmwAAAANshwAAAANshwAAAANshwAAAANshwAAAANshwAAAANshwAAAANshwAAAANshwAAAANshwAAAANshwAAAANshwAAAANshwAAAANshwAAAANshwAAAANshwAAAANshwAAAANshwAAAANshwAAAgPoxwW6AAAMAAGyIAAMAAGyHAAMAAGyHAAMAAGyHAAMAAGynXgEmKytLF198sVq3bq2YmBjdcMMNKioqCqg5fPiwMjIy1K5dO7Vq1UpDhw5VSUlJQE1xcbHS09MVGRmpmJgYTZ06VVVVVQE1a9asUd++feVyudSlSxdlZ2c37AwBAECTU68Ak5eXp4yMDK1bt045OTk6cuSIBg0apIMHD1o1kydP1ttvv60lS5YoLy9Pu3bt0o033mitr66uVnp6uiorK/XRRx/ppZdeUnZ2tmbOnGnV7NixQ+np6bryyitVWFioSZMm6a677tKKFSsa4ZQBAIDdOYwxDX6ae8+ePYqJiVFeXp4GDBig8vJydejQQYsWLdJNN90kSfrss8/UvXt35efnq3///nr33Xd1zTXXaNeuXYqNjZUkLViwQNOnT9eePXvkdDo1ffp0LVu2TFu2bLGONXz4cJWVlWn58uXH7aWiokIVFRXWvN/vV0JCgsrLy+V2uxt6igAA4Cd+uSBfH3+1T/NG9tXVveIadd9+v19RUVGn/Pt9WmNgysvLJUlt27aVJBUUFOjIkSNKTU21arp166ZOnTopPz9fkpSfn69evXpZ4UWS0tLS5Pf7tXXrVqvm6H3U1tTu43iysrIUFRVlTQkJCadzagAA4CzW4ABTU1OjSZMm6dJLL1XPnj0lST6fT06nU9HR0QG1sbGx8vl8Vs3R4aV2fe26k9X4/X4dOnTouP1kZmaqvLzcmnbu3NnQUwMAAGe5sIZumJGRoS1btuiDDz5ozH4azOVyyeVyBbsNAADwb9CgOzATJ07U0qVLtXr1anXs2NFa7vF4VFlZqbKysoD6kpISeTweq+anTyXVzp+qxu12KyIioiEtAwCAJqReAcYYo4kTJ+r111/XqlWrlJiYGLA+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ZvfakKRLL730mK9c+Mc//qHOnTtLan7vpWeNYI8itpNXXnnFuFwuk52dbbZt22bGjRtnoqOjA0ban232799vNm7caDZu3GgkmSeeeMJs3LjRfP3118aYHx63i46ONm+++abZtGmTuf7664/76N9FF11k1q9fbz744ANz/vnnBzz6V1ZWZmJjY81tt91mtmzZYl555RUTGRl5zKN/YWFh5rHHHjOffvqpue+++4776N+pejkdEyZMMFFRUWbNmjUBj4d+//33Vs348eNNp06dzKpVq8wnn3xivF6v8Xq91vrax0MHDRpkCgsLzfLly02HDh2O+3jo1KlTzaeffmqeffbZ4z4eeqrX0ql6OV2/+c1vTF5entmxY4fZtGmT+c1vfmMcDod57733mt21OJ6jn0Jqbtfj3nvvNWvWrDE7duwwH374oUlNTTXt27c3paWlze5aGPPDo/VhYWHmoYceMtu3bzcLFy40kZGR5s9//rNV05zeS88WBJh6euaZZ0ynTp2M0+k0l1xyiVm3bl2wWzqp1atXG0nHTKNHjzbG/PDI3f/7f//PxMbGGpfLZQYOHGiKiooC9rF3715zyy23mFatWhm3223uuOMOs3///oCav//97+ayyy4zLpfLnHPOOeaRRx45ppfFixebCy64wDidTtOjRw+zbNmygPV16eV0HO86SDIvvviiVXPo0CHzX//1X6ZNmzYmMjLS/Od//qfZvXt3wH6++uorM2TIEBMREWHat29v7r33XnPkyJGAmtWrV5sLL7zQOJ1Oc+655wYco9apXkt16eV03HnnnaZz587G6XSaDh06mIEDB1rhpbldi+P5aYBpTtdj2LBhJi4uzjidTnPOOeeYYcOGBXznSXO6FrXefvtt07NnT+NyuUy3bt3Mc889F7C+Ob2Xni0cxhgTnHs/AAAADcMYGAAAYDsEGAAAYDsEGAAAYDsEGAAAYDsEGAAAYDsEGAAAYDsEGAAAYDsEGAAAYDsEGAAAYDsEGAAAYDsEGAAAYDv/H9pnMn3/ZfAfAAAAAElFTkSuQmCC",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%matplotlib inline\n",
"y = posts.sort_values(by='likes')['likes']\n",
"plt.plot(y.reset_index(drop=True))\n",
"plt.title('Likes per post')\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "1b9264f4",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.3944738883046787"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.sum(posts['likes'] == 0) / posts.shape[0]"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "6744b53f",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.6932166446400256"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.sum(posts['likes'] <= 1) / posts.shape[0]"
]
},
{
"cell_type": "markdown",
"id": "187f935d",
"metadata": {},
"source": [
"Likes per account"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "e9b4f141",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>account</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>did:plc:lhfbzpkdw2jk5i6im5pd2mi5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>did:plc:btaxnpi4resvm2uz4n7tcp3f</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>did:plc:ky3xc27d4ct6ntwxsu7tjpx7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>did:plc:z3ds6onyuoyfnx42qgoddhbp</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>did:plc:hqzxqh634sd546rfoazslb5h</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>269812</th>\n",
" <td>did:plc:p6t6ari5h7bcim3iq3zs3fwr</td>\n",
" </tr>\n",
" <tr>\n",
" <th>269813</th>\n",
" <td>did:plc:omiligdebd4dwcthsxvn2fgi</td>\n",
" </tr>\n",
" <tr>\n",
" <th>269814</th>\n",
" <td>did:plc:fg6wnip4zgzz3277lz7djpet</td>\n",
" </tr>\n",
" <tr>\n",
" <th>269815</th>\n",
" <td>did:plc:5czjjn5zjvkxec6rcvvuidgq</td>\n",
" </tr>\n",
" <tr>\n",
" <th>269816</th>\n",
" <td>did:plc:jdiqko5hqd3chtepm4docjsc</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>269817 rows × 1 columns</p>\n",
"</div>"
],
"text/plain": [
" account\n",
"0 did:plc:lhfbzpkdw2jk5i6im5pd2mi5\n",
"1 did:plc:btaxnpi4resvm2uz4n7tcp3f\n",
"2 did:plc:ky3xc27d4ct6ntwxsu7tjpx7\n",
"3 did:plc:z3ds6onyuoyfnx42qgoddhbp\n",
"4 did:plc:hqzxqh634sd546rfoazslb5h\n",
"... ...\n",
"269812 did:plc:p6t6ari5h7bcim3iq3zs3fwr\n",
"269813 did:plc:omiligdebd4dwcthsxvn2fgi\n",
"269814 did:plc:fg6wnip4zgzz3277lz7djpet\n",
"269815 did:plc:5czjjn5zjvkxec6rcvvuidgq\n",
"269816 did:plc:jdiqko5hqd3chtepm4docjsc\n",
"\n",
"[269817 rows x 1 columns]"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"accounts = pd.concat([likes['subjectDid'], likes['authorDid'], posts['authorDid']])\n",
"\n",
"accounts = pd.DataFrame({'account': accounts.unique()})\n",
"\n",
"accounts"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "05c7fe61",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>account</th>\n",
" <th>likes</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>did:plc:2224x6c53tqc6dpnbamce2yg</td>\n",
" <td>64</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>did:plc:222ombk5yfjty5jw6r6566tk</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>did:plc:222p42fegwhwfyrc3gqam76j</td>\n",
" <td>119</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>did:plc:222qqedb2kgz3ulwbpboltw2</td>\n",
" <td>6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>did:plc:222rnvnta2lbl364bog2plxw</td>\n",
" <td>575</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>133639</th>\n",
" <td>did:plc:zzz2awwhi7smhg3qn6th37xg</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>133640</th>\n",
" <td>did:plc:zzza7zo2lho4etts27epjgpc</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>133641</th>\n",
" <td>did:plc:zzzj2bhzojle3nic4wpwmcsm</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>133642</th>\n",
" <td>did:plc:zzznrmktdln6qlvsqigd6ubc</td>\n",
" <td>7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>133643</th>\n",
" <td>did:plc:zzzzet3m2cnkmtsjyusz7uzs</td>\n",
" <td>67</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>133644 rows × 2 columns</p>\n",
"</div>"
],
"text/plain": [
" account likes\n",
"0 did:plc:2224x6c53tqc6dpnbamce2yg 64\n",
"1 did:plc:222ombk5yfjty5jw6r6566tk 4\n",
"2 did:plc:222p42fegwhwfyrc3gqam76j 119\n",
"3 did:plc:222qqedb2kgz3ulwbpboltw2 6\n",
"4 did:plc:222rnvnta2lbl364bog2plxw 575\n",
"... ... ...\n",
"133639 did:plc:zzz2awwhi7smhg3qn6th37xg 2\n",
"133640 did:plc:zzza7zo2lho4etts27epjgpc 1\n",
"133641 did:plc:zzzj2bhzojle3nic4wpwmcsm 1\n",
"133642 did:plc:zzznrmktdln6qlvsqigd6ubc 7\n",
"133643 did:plc:zzzzet3m2cnkmtsjyusz7uzs 67\n",
"\n",
"[133644 rows x 2 columns]"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"account_likes = likes.groupby('subjectDid'\n",
" ).agg(likes=('uri', 'count')\n",
" ).reset_index(\n",
" ).rename(columns={'subjectDid':'account'})\n",
"account_likes"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "956aa546",
"metadata": {},
"outputs": [],
"source": [
"accounts = accounts.merge(account_likes, left_on='account', right_on='account', how='left')\n",
"accounts.loc[accounts['likes'].isna(), 'likes'] = 0"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "152aa08c",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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9JKXq/nj96KystLs3LnT7Ny500gyzz//vNm5c6c5duyYMabpEtCEhASzZs0as2vXLnP33Xdf8tLesWPHmm3btpktW7aYwYMHe12OWl5eblJSUsx3vvMds2fPHrNixQoTHR190eWoYWFh5rnnnjP79u0zTz755CUvR22tFitdri8rKyvND3/4Q5OXl2eOHDliPvjgA3PttdeawYMHm9raWs9r0JdNHnnkERMfH282btzodalpTU2Np40v/W63VovVWuvPgwcPmqefftps377dHDlyxKxZs8YMHDjQ3HTTTZ7XoD9bF7RhxBhjXnjhBdOvXz8TERFhJkyYYD7++GOrS+pWs2fPNmlpaSYiIsL06dPHzJ492xw8eNBz/Ny5c+Zf/uVfTM+ePU10dLT5+te/boqKirxe4+jRo2bGjBkmKirKJCUlmR/84Aemvr7eq82HH35oxowZYyIiIszAgQPNq6++elEt/vi9+PDDD42kix5z5841xjRdBvrzn//cpKSkGLvdbm699VZTUFDg9Rpnzpwx9957r4mJiTFxcXHmgQceMJWVlV5tPvvsM3PDDTcYu91u+vTpY5555pmLannrrbfMkCFDTEREhBk+fLh55513vI63pRYrXa4va2pqzO2332569+5twsPDTf/+/c28efMuCqv0ZZNL9aMkr987X/rdbkstVmqtPwsLC81NN91kEhMTjd1uN4MGDTKPP/641z4jxtCfrbEZY0z3jcMAAAB4C8o1IwAAwHcQRgAAgKUIIwAAwFKEEQAAYCnCCAAAsBRhBAAAWIowAgAALEUYAQAAliKMAAAASxFGAACApQgjAADAUoQRAABgqf8PnLLqROev5woAAAAASUVORK5CYII=",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%matplotlib inline\n",
"y_accounts = accounts.sort_values(by='likes')['likes'].cumsum().reset_index(drop=True)\n",
"plt.plot(y_accounts)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "33ec3b44",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.00 0.0\n",
"0.25 0.0\n",
"0.50 0.0\n",
"0.75 3.0\n",
"0.90 13.0\n",
"0.95 33.0\n",
"0.99 152.0\n",
"Name: likes, dtype: float64"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"quants = [0, 0.25, 0.5, 0.75, 0.9, .95, .99]\n",
"quantiles = accounts['likes'].quantile(quants)\n",
"quantiles"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "fe29f683",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[0, 0, 0, 196497, 241490, 256295, 267113]"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sorted_accounts = accounts.sort_values(by='likes')\n",
"quant_idx = [np.where(sorted_accounts['likes'] >= q)[0][0] for q in quantiles]\n",
"quant_idx"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "36b72cea",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(array([136173, 136174, 136175, ..., 269814, 269815, 269816]),)"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.where(sorted_accounts['likes'] > 0)"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "c10b03d4",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%matplotlib inline\n",
"\n",
"cumsum_accounts = sorted_accounts['likes'].cumsum().reset_index(drop=True)\n",
"\n",
"plt.plot(cumsum_accounts)\n",
"\n",
"for q_label, q_idx in zip(quants, quant_idx):\n",
" plt.axvline(x=q_idx, color='black', linestyle='--', linewidth=.1)\n",
" plt.annotate(text=str(q_label), xy=(q_idx, max(cumsum_accounts)), xycoords='data')\n",
"\n",
"plt.title('Cumulative sum of likes received by accounts') \n",
"\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "edbf19cc",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.5046865097454941"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(accounts[accounts['likes']==0]['likes']) / len(accounts)"
]
},
{
"cell_type": "markdown",
"id": "cbf4bf37",
"metadata": {},
"source": [
"Proportion of interactions received by the 99th and 95th percentile of most interacted with accounts"
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "da3a792a",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.442995115042035"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"percentile = 0.99\n",
"accounts.loc[accounts['likes'] >= quantiles[percentile], 'likes'].sum() / accounts['likes'].sum()"
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "f018a478",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.73839113058112"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"percentile = 0.95\n",
"accounts.loc[accounts['likes'] >= quantiles[percentile], 'likes'].sum() / accounts['likes'].sum()"
]
},
{
"cell_type": "markdown",
"id": "66961868",
"metadata": {},
"source": [
"Excluding interactions with the top (percentile) accounts"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "2d6a7119",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 26,
"id": "db949eae",
"metadata": {},
"outputs": [],
"source": [
"top_accounts = accounts.loc[accounts['likes'] >= quantiles[percentile]]\n"
]
},
{
"cell_type": "code",
"execution_count": 27,
"id": "660122a8",
"metadata": {},
"outputs": [],
"source": [
"top_posts = posts.loc[posts['authorDid'].isin(top_accounts['account'])]\n",
"non_top_posts = posts.loc[~posts['authorDid'].isin(top_accounts['account'])]\n",
"top_threads = posts.loc[np.logical_or(\n",
" posts['replyRoot'].isin(top_posts['uri']),\n",
" posts['replyParent'].isin(top_posts['uri'])\n",
")]"
]
},
{
"cell_type": "code",
"execution_count": 28,
"id": "9bf35229",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>uri</th>\n",
" <th>cid</th>\n",
" <th>authorDid</th>\n",
" <th>indexedAt</th>\n",
" <th>createdAt</th>\n",
" <th>subjectUri</th>\n",
" <th>subjectCid</th>\n",
" <th>subjectDid</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>at://did:plc:iomleec6ojlmywkrwqjbr57o/app.bsky...</td>\n",
" <td>bafyreidgvotn7srwum67gsv5rkjbiybtwjwpei5tvnrws...</td>\n",
" <td>did:plc:iomleec6ojlmywkrwqjbr57o</td>\n",
" <td>2023-12-27T03:12:43.896Z</td>\n",
" <td>2023-12-27T03:12:42.248Z</td>\n",
" <td>at://did:plc:btaxnpi4resvm2uz4n7tcp3f/app.bsky...</td>\n",
" <td>bafyreifsu35qmmr66fooemrvkke6rdd3qq5mdjvtsqs5y...</td>\n",
" <td>did:plc:btaxnpi4resvm2uz4n7tcp3f</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>at://did:plc:cakburidjcwro44hweyxazjg/app.bsky...</td>\n",
" <td>bafyreiawjvozspsyg5yelmmnb3hs4sp7vsjqddpr6t636...</td>\n",
" <td>did:plc:cakburidjcwro44hweyxazjg</td>\n",
" <td>2023-12-27T03:12:43.968Z</td>\n",
" <td>2023-12-27T03:12:43.705Z</td>\n",
" <td>at://did:plc:ky3xc27d4ct6ntwxsu7tjpx7/app.bsky...</td>\n",
" <td>bafyreib7r6526nciyilv3ky345zbmbh4w3tsarc74z72c...</td>\n",
" <td>did:plc:ky3xc27d4ct6ntwxsu7tjpx7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>at://did:plc:kwmi7ftr3g7hbohzauip3mxn/app.bsky...</td>\n",
" <td>bafyreiasf7jxlprpiix6eo4x7ifb7zeaduu2kcftyxpyi...</td>\n",
" <td>did:plc:kwmi7ftr3g7hbohzauip3mxn</td>\n",
" <td>2023-12-27T03:12:44.068Z</td>\n",
" <td>2023-12-27T03:12:45.463Z</td>\n",
" <td>at://did:plc:wxj3cnbus6js5f7hjwowoxoq/app.bsky...</td>\n",
" <td>bafyreifcftx7xktszbhmylitz34hf66ivmboymshgtchl...</td>\n",
" <td>did:plc:wxj3cnbus6js5f7hjwowoxoq</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>at://did:plc:43eonpufv7sg6hglanhbhraw/app.bsky...</td>\n",
" <td>bafyreieyyoeepsexamgybk5dun3sqxwiqftas2ent47np...</td>\n",
" <td>did:plc:43eonpufv7sg6hglanhbhraw</td>\n",
" <td>2023-12-27T03:12:44.287Z</td>\n",
" <td>2023-12-27T03:12:44.003Z</td>\n",
" <td>at://did:plc:mgsxkvihm65lecdzbavku3tk/app.bsky...</td>\n",
" <td>bafyreibyyeobzn34r4edmeiaarancnpjbuesdiuqxkxfy...</td>\n",
" <td>did:plc:mgsxkvihm65lecdzbavku3tk</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>at://did:plc:ipepj5vzwwzvggali4tnccwj/app.bsky...</td>\n",
" <td>bafyreiht7xdi2cuc6bwoer4qcf5nwzekyt7kvwq6cv4la...</td>\n",
" <td>did:plc:ipepj5vzwwzvggali4tnccwj</td>\n",
" <td>2023-12-27T03:12:44.369Z</td>\n",
" <td>2023-12-27T03:12:43.406Z</td>\n",
" <td>at://did:plc:e4r2dxzbadqabu63wne4tosx/app.bsky...</td>\n",
" <td>bafyreibk6afarwpw7rdzifkxbi5kgy36tolpe45lxvjzq...</td>\n",
" <td>did:plc:e4r2dxzbadqabu63wne4tosx</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2431516</th>\n",
" <td>at://did:plc:feaa5k4utn2gayj2bxsvx3cx/app.bsky...</td>\n",
" <td>bafyreifm7bfz6t22liztgjjtnrm3svwiuyno37chgh4ki...</td>\n",
" <td>did:plc:feaa5k4utn2gayj2bxsvx3cx</td>\n",
" <td>2023-12-28T03:41:47.605Z</td>\n",
" <td>2023-12-28T03:41:46.687Z</td>\n",
" <td>at://did:plc:q4b6fmgkkrybhf5ejbrgcmgn/app.bsky...</td>\n",
" <td>bafyreibl7b6qni2jxir2v4uf5wfcurx3bbsgprvodwb2s...</td>\n",
" <td>did:plc:q4b6fmgkkrybhf5ejbrgcmgn</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2431523</th>\n",
" <td>at://did:plc:7yeirudvbp5l3lmp4ycgbml5/app.bsky...</td>\n",
" <td>bafyreigj5r4j2cmgyops6naxbnk6qsdk7woqtjwy75fh4...</td>\n",
" <td>did:plc:7yeirudvbp5l3lmp4ycgbml5</td>\n",
" <td>2023-12-28T03:41:47.666Z</td>\n",
" <td>2023-12-28T03:41:46.741Z</td>\n",
" <td>at://did:plc:fllmcdrrhebd55j4mp43igmb/app.bsky...</td>\n",
" <td>bafyreiatd54b5pcpu2f2cysdavzcv2iqtdput7orhgbnt...</td>\n",
" <td>did:plc:fllmcdrrhebd55j4mp43igmb</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2431524</th>\n",
" <td>at://did:plc:qdriunexx3nobe5kpltycouy/app.bsky...</td>\n",
" <td>bafyreifncwwa4desh5ju6re2ykvfgchnppxvzlk5spili...</td>\n",
" <td>did:plc:qdriunexx3nobe5kpltycouy</td>\n",
" <td>2023-12-28T03:41:47.686Z</td>\n",
" <td>2023-12-28T03:41:46.886Z</td>\n",
" <td>at://did:plc:i3l64jceufl7zcbk3r2sfiyc/app.bsky...</td>\n",
" <td>bafyreihyyllfudoppmwlzvir5uvomf4cgxogygba7dt2l...</td>\n",
" <td>did:plc:i3l64jceufl7zcbk3r2sfiyc</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2431529</th>\n",
" <td>at://did:plc:ycdfsvtnosafdvko26fc7i43/app.bsky...</td>\n",
" <td>bafyreigvptivi6zu6njihe7wfuii6rdhj5y3l6u2azihw...</td>\n",
" <td>did:plc:ycdfsvtnosafdvko26fc7i43</td>\n",
" <td>2023-12-28T03:41:47.745Z</td>\n",
" <td>2023-12-28T03:41:46.679Z</td>\n",
" <td>at://did:plc:gxxkzpo2cw6q2ynee64rxppw/app.bsky...</td>\n",
" <td>bafyreicoczktoxoxozi3wurb3shbikgd5tbrukl4goavl...</td>\n",
" <td>did:plc:gxxkzpo2cw6q2ynee64rxppw</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2431538</th>\n",
" <td>at://did:plc:ct5u4vpg5ajhx6wxihtca6qh/app.bsky...</td>\n",
" <td>bafyreiduxg3lwaaibwaxsrsck44rzfpefliil2otfy67z...</td>\n",
" <td>did:plc:ct5u4vpg5ajhx6wxihtca6qh</td>\n",
" <td>2023-12-28T03:41:48.066Z</td>\n",
" <td>2023-12-28T03:41:47.744Z</td>\n",
" <td>at://did:plc:4msurte3uoa37puu2ma673t6/app.bsky...</td>\n",
" <td>bafyreifmtmvujeeccj4t7trmzof22lhxpkiqk5s5yamty...</td>\n",
" <td>did:plc:4msurte3uoa37puu2ma673t6</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>546374 rows × 8 columns</p>\n",
"</div>"
],
"text/plain": [
" uri \\\n",
"1 at://did:plc:iomleec6ojlmywkrwqjbr57o/app.bsky... \n",
"2 at://did:plc:cakburidjcwro44hweyxazjg/app.bsky... \n",
"6 at://did:plc:kwmi7ftr3g7hbohzauip3mxn/app.bsky... \n",
"10 at://did:plc:43eonpufv7sg6hglanhbhraw/app.bsky... \n",
"11 at://did:plc:ipepj5vzwwzvggali4tnccwj/app.bsky... \n",
"... ... \n",
"2431516 at://did:plc:feaa5k4utn2gayj2bxsvx3cx/app.bsky... \n",
"2431523 at://did:plc:7yeirudvbp5l3lmp4ycgbml5/app.bsky... \n",
"2431524 at://did:plc:qdriunexx3nobe5kpltycouy/app.bsky... \n",
"2431529 at://did:plc:ycdfsvtnosafdvko26fc7i43/app.bsky... \n",
"2431538 at://did:plc:ct5u4vpg5ajhx6wxihtca6qh/app.bsky... \n",
"\n",
" cid \\\n",
"1 bafyreidgvotn7srwum67gsv5rkjbiybtwjwpei5tvnrws... \n",
"2 bafyreiawjvozspsyg5yelmmnb3hs4sp7vsjqddpr6t636... \n",
"6 bafyreiasf7jxlprpiix6eo4x7ifb7zeaduu2kcftyxpyi... \n",
"10 bafyreieyyoeepsexamgybk5dun3sqxwiqftas2ent47np... \n",
"11 bafyreiht7xdi2cuc6bwoer4qcf5nwzekyt7kvwq6cv4la... \n",
"... ... \n",
"2431516 bafyreifm7bfz6t22liztgjjtnrm3svwiuyno37chgh4ki... \n",
"2431523 bafyreigj5r4j2cmgyops6naxbnk6qsdk7woqtjwy75fh4... \n",
"2431524 bafyreifncwwa4desh5ju6re2ykvfgchnppxvzlk5spili... \n",
"2431529 bafyreigvptivi6zu6njihe7wfuii6rdhj5y3l6u2azihw... \n",
"2431538 bafyreiduxg3lwaaibwaxsrsck44rzfpefliil2otfy67z... \n",
"\n",
" authorDid indexedAt \\\n",
"1 did:plc:iomleec6ojlmywkrwqjbr57o 2023-12-27T03:12:43.896Z \n",
"2 did:plc:cakburidjcwro44hweyxazjg 2023-12-27T03:12:43.968Z \n",
"6 did:plc:kwmi7ftr3g7hbohzauip3mxn 2023-12-27T03:12:44.068Z \n",
"10 did:plc:43eonpufv7sg6hglanhbhraw 2023-12-27T03:12:44.287Z \n",
"11 did:plc:ipepj5vzwwzvggali4tnccwj 2023-12-27T03:12:44.369Z \n",
"... ... ... \n",
"2431516 did:plc:feaa5k4utn2gayj2bxsvx3cx 2023-12-28T03:41:47.605Z \n",
"2431523 did:plc:7yeirudvbp5l3lmp4ycgbml5 2023-12-28T03:41:47.666Z \n",
"2431524 did:plc:qdriunexx3nobe5kpltycouy 2023-12-28T03:41:47.686Z \n",
"2431529 did:plc:ycdfsvtnosafdvko26fc7i43 2023-12-28T03:41:47.745Z \n",
"2431538 did:plc:ct5u4vpg5ajhx6wxihtca6qh 2023-12-28T03:41:48.066Z \n",
"\n",
" createdAt \\\n",
"1 2023-12-27T03:12:42.248Z \n",
"2 2023-12-27T03:12:43.705Z \n",
"6 2023-12-27T03:12:45.463Z \n",
"10 2023-12-27T03:12:44.003Z \n",
"11 2023-12-27T03:12:43.406Z \n",
"... ... \n",
"2431516 2023-12-28T03:41:46.687Z \n",
"2431523 2023-12-28T03:41:46.741Z \n",
"2431524 2023-12-28T03:41:46.886Z \n",
"2431529 2023-12-28T03:41:46.679Z \n",
"2431538 2023-12-28T03:41:47.744Z \n",
"\n",
" subjectUri \\\n",
"1 at://did:plc:btaxnpi4resvm2uz4n7tcp3f/app.bsky... \n",
"2 at://did:plc:ky3xc27d4ct6ntwxsu7tjpx7/app.bsky... \n",
"6 at://did:plc:wxj3cnbus6js5f7hjwowoxoq/app.bsky... \n",
"10 at://did:plc:mgsxkvihm65lecdzbavku3tk/app.bsky... \n",
"11 at://did:plc:e4r2dxzbadqabu63wne4tosx/app.bsky... \n",
"... ... \n",
"2431516 at://did:plc:q4b6fmgkkrybhf5ejbrgcmgn/app.bsky... \n",
"2431523 at://did:plc:fllmcdrrhebd55j4mp43igmb/app.bsky... \n",
"2431524 at://did:plc:i3l64jceufl7zcbk3r2sfiyc/app.bsky... \n",
"2431529 at://did:plc:gxxkzpo2cw6q2ynee64rxppw/app.bsky... \n",
"2431538 at://did:plc:4msurte3uoa37puu2ma673t6/app.bsky... \n",
"\n",
" subjectCid \\\n",
"1 bafyreifsu35qmmr66fooemrvkke6rdd3qq5mdjvtsqs5y... \n",
"2 bafyreib7r6526nciyilv3ky345zbmbh4w3tsarc74z72c... \n",
"6 bafyreifcftx7xktszbhmylitz34hf66ivmboymshgtchl... \n",
"10 bafyreibyyeobzn34r4edmeiaarancnpjbuesdiuqxkxfy... \n",
"11 bafyreibk6afarwpw7rdzifkxbi5kgy36tolpe45lxvjzq... \n",
"... ... \n",
"2431516 bafyreibl7b6qni2jxir2v4uf5wfcurx3bbsgprvodwb2s... \n",
"2431523 bafyreiatd54b5pcpu2f2cysdavzcv2iqtdput7orhgbnt... \n",
"2431524 bafyreihyyllfudoppmwlzvir5uvomf4cgxogygba7dt2l... \n",
"2431529 bafyreicoczktoxoxozi3wurb3shbikgd5tbrukl4goavl... \n",
"2431538 bafyreifmtmvujeeccj4t7trmzof22lhxpkiqk5s5yamty... \n",
"\n",
" subjectDid \n",
"1 did:plc:btaxnpi4resvm2uz4n7tcp3f \n",
"2 did:plc:ky3xc27d4ct6ntwxsu7tjpx7 \n",
"6 did:plc:wxj3cnbus6js5f7hjwowoxoq \n",
"10 did:plc:mgsxkvihm65lecdzbavku3tk \n",
"11 did:plc:e4r2dxzbadqabu63wne4tosx \n",
"... ... \n",
"2431516 did:plc:q4b6fmgkkrybhf5ejbrgcmgn \n",
"2431523 did:plc:fllmcdrrhebd55j4mp43igmb \n",
"2431524 did:plc:i3l64jceufl7zcbk3r2sfiyc \n",
"2431529 did:plc:gxxkzpo2cw6q2ynee64rxppw \n",
"2431538 did:plc:4msurte3uoa37puu2ma673t6 \n",
"\n",
"[546374 rows x 8 columns]"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"non_top_reply_likes = likes.loc[\n",
" np.logical_and(\n",
" ~likes['subjectUri'].isin(top_threads['uri']),\n",
" ~likes['subjectDid'].isin(top_accounts['account'])\n",
" )]\n",
"non_top_account_likes = likes.loc[\n",
" ~likes['subjectDid'].isin(top_accounts['account'])\n",
"]\n",
"\n",
"non_top_reply_likes"
]
},
{
"cell_type": "markdown",
"id": "5d7ca01a",
"metadata": {},
"source": [
"Proportion of posts from top posters"
]
},
{
"cell_type": "code",
"execution_count": 29,
"id": "5069cd71",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.4083754239690857"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"top_posts.shape[0] / posts.shape[0]"
]
},
{
"cell_type": "markdown",
"id": "44fa1058",
"metadata": {},
"source": [
"Proportion of non-top account likes that are not in threads with top accounts"
]
},
{
"cell_type": "code",
"execution_count": 30,
"id": "79b26b9b",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.8589246581587577"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"non_top_reply_likes.shape[0] / non_top_account_likes.shape[0]"
]
},
{
"cell_type": "markdown",
"id": "455e39bd",
"metadata": {},
"source": [
"Proportion of likes to non-top accounts"
]
},
{
"cell_type": "code",
"execution_count": 31,
"id": "602921d8",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.26160886941888"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"non_top_account_likes.shape[0] / likes.shape[0]"
]
},
{
"cell_type": "markdown",
"id": "19ae2594",
"metadata": {},
"source": [
"Proportion of likes to non-top accounts that are not in threads with top accounts"
]
},
{
"cell_type": "code",
"execution_count": 32,
"id": "a3572f44",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.22470230873691058"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"non_top_reply_likes.shape[0] / likes.shape[0]"
]
},
{
"cell_type": "markdown",
"id": "f88361b0",
"metadata": {},
"source": [
"Number of top accounts"
]
},
{
"cell_type": "code",
"execution_count": 33,
"id": "7b0094ba",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"13522"
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"top_accounts.shape[0]"
]
},
{
"cell_type": "markdown",
"id": "aae6aa9d",
"metadata": {},
"source": [
"Quantiles of likes received by non-top posts"
]
},
{
"cell_type": "code",
"execution_count": 34,
"id": "3a0c7e8b",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.00 0.0\n",
"0.25 0.0\n",
"0.50 0.0\n",
"0.75 1.0\n",
"0.90 3.0\n",
"0.95 5.0\n",
"0.99 11.0\n",
"Name: likes, dtype: float64"
]
},
"execution_count": 34,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"non_top_posts['likes'].quantile(quants)"
]
},
{
"cell_type": "code",
"execution_count": 35,
"id": "f6471c77",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.8008732539358548"
]
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sum(non_top_posts['likes'] <= 1) / non_top_posts.shape[0]"
]
},
{
"cell_type": "code",
"execution_count": 36,
"id": "1c9f73b5",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"32.0"
]
},
"execution_count": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"non_top_posts['likes'].max()"
]
},
{
"cell_type": "code",
"execution_count": 37,
"id": "1e9d4b13",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"3928.0"
]
},
"execution_count": 37,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"top_posts['likes'].max()"
]
},
{
"cell_type": "markdown",
"id": "9cc66fb2",
"metadata": {},
"source": [
"How many accounts who posted received any likes?"
]
},
{
"cell_type": "code",
"execution_count": 38,
"id": "17f85222",
"metadata": {},
"outputs": [],
"source": [
"posting_account_likes = posts.groupby('authorDid'\n",
" ).agg(\n",
" likes=('likes', 'sum'),\n",
" posts=('uri', 'count')\n",
" ).reset_index()"
]
},
{
"cell_type": "code",
"execution_count": 39,
"id": "58fb21bc",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.31761174116077384"
]
},
"execution_count": 39,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sum(posting_account_likes['likes'] == 0) / posting_account_likes.shape[0]"
]
},
{
"cell_type": "code",
"execution_count": 40,
"id": "ba4a400e",
"metadata": {},
"outputs": [],
"source": [
"posting_account_likes['likes_per_post'] = \\\n",
" posting_account_likes['likes'] / posting_account_likes['posts']"
]
},
{
"cell_type": "code",
"execution_count": 41,
"id": "d67e1705",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.00 0.0\n",
"0.25 0.0\n",
"0.50 1.0\n",
"0.75 2.0\n",
"0.90 5.0\n",
"0.95 8.3\n",
"0.99 28.0\n",
"Name: likes_per_post, dtype: float64"
]
},
"execution_count": 41,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"lpp_quantiles = posting_account_likes['likes_per_post'].quantile(quants)\n",
"lpp_quantiles"
]
},
{
"cell_type": "code",
"execution_count": 42,
"id": "c1daecca",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.00 0.000000\n",
"0.25 0.000000\n",
"0.50 0.833333\n",
"0.75 1.625000\n",
"0.90 3.250000\n",
"0.95 5.000000\n",
"0.99 12.000000\n",
"Name: likes_per_post, dtype: float64"
]
},
"execution_count": 42,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"nontop_lpp_quantiles = posting_account_likes[\n",
" ~posting_account_likes['authorDid'].isin(top_accounts['account'])\n",
"]['likes_per_post'].quantile(quants)\n",
"nontop_lpp_quantiles"
]
},
{
"cell_type": "code",
"execution_count": 50,
"id": "8f14183c",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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/P390bdvX5w6dUo1j9q1a0Oj0aheEydOVNXZt28fwsLC4ODggICAAEyePLl8a0hERERkhTKHokuXLqF58+aYPXt2obLLly/j559/xptvvomff/4Zq1atQlpaGh599NFCdd9++22cPn1aeb344otKmclkQmRkJAIDA5GSkoIpU6YgISEBCxYsKGtziYiIiKxiV9YJoqOjER0dXWSZXq9HUlKSatysWbPQunVrnDx5ErVq1VLGu7q6wmAwFDmfJUuWICcnBwsXLoRWq0WTJk2QmpqKqVOnYvDgwWVtMhEREVGpKv2aoszMTGg0Gri7u6vGT5w4ETVq1EDLli0xZcoU5OXlKWXJyckIDw+HVqtVxkVFRSEtLQ0XLlwocjnZ2dkwmUyqFxEREZG1ynymqCyuXr2KsWPHomfPnnBzc1PGDx8+HPfffz88PT2xc+dOxMfH4/Tp05g6dSoAwGg0ok6dOqp5+fr6KmUeHh6FlpWYmIjx48dX4toQERFRdVZpoSg3Nxc9evSAiGDu3LmqslGjRin/b9asGbRaLYYMGYLExETodLpyLS8+Pl41X5PJhICAgPI1noiIiO46lRKKLIHoxIkT2Lx5s+osUVFCQkKQl5eH48ePo0GDBjAYDEhPT1fVsQwXdx2STqcrd6AiIiIiqvBriiyB6PDhw9i4cSNq1KhR6jSpqamwsbGBj48PACA0NBTbt29Hbm6uUicpKQkNGjQo8qszIiIioptV5jNFWVlZOHLkiDJ87NgxpKamwtPTE35+fnjyySfx888/Y82aNcjPz4fRaAQAeHp6QqvVIjk5Gbt370aHDh3g6uqK5ORkjBw5Es8++6wSeHr16oXx48djwIABGDt2LA4cOIDp06fjww8/rKDVJiIiIlIrcyjau3cvOnTooAxbruOJjY1FQkICvvnmGwBAixYtVNNt2bIF7du3h06nw7Jly5CQkIDs7GzUqVMHI0eOVF0PpNfrsWHDBsTFxSE4OBheXl4YN24cb8cnIiKiSlPmUNS+fXuISLHlJZUBwP33349du3aVupxmzZphx44dZW0eERERUbnwt8+IiIiIwFBEREREBIChiIiIiAgAQxERERERAIYiIiIiIgAMRUREREQAGIqIiIiIADAUEREREQFgKCIiIiICwFBEREREBIChiIiIiAgAQxERERERAIYiIiIiIgAMRUREREQA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s7u+iKNHj2Lp0qXo0qULatSogX379mHkyJEIDw9Hs2bNAACRkZFo3Lgx+vTpg8mTJ8NoNOKNN95AXFwczwQRERHdVjSlV7mDVEoo2rhxI06ePIn+/furxmu1WmzcuBHTpk3DpUuXEBAQgO7du+ONN95Q6tja2mLNmjUYOnQoQkND4ezsjNjYWNVzjYiIiIgqWqWEosjISEgR59YCAgKwbdu2UqcPDAzE2rVrK6NpREREREXib58RERERgaGIiIiICABDEREREREAhiIiIiIiAAxFRERERAAYioiIiIgAMBQRERERAWAoIiIiIgLAUEREREQEgKGIiIiICABDEREREREAhiIiIiIiAAxFRERERAAYioiIiIgAMBQRERERAWAoIiIiIgLAUEREREQEgKGIiIiICABDEREREREAhiIiIiIiAAxFRERERAAYioiIiIgAMBQRERERAWAoIiIiIgLAUEREREQEgKGIiIiICABDEREREREAhiIiIiIiAAxFRERERAAYioiIiIgAMBQRERERAWAoIiIiojKSqm5AJWEoIiIionLRaKq6BRWrwkNRQkICNBqN6tWwYUOl/OrVq4iLi0ONGjXg4uKC7t27Iz09XTWPkydPIiYmBk5OTvDx8cGYMWOQl5dX0U0lIiKichCpnueK7Cpjpk2aNMHGjRuvL8Tu+mJGjhyJ7777DitWrIBer8ewYcPwxBNP4McffwQA5OfnIyYmBgaDATt37sTp06fRt29f2Nvb47333quM5hIREVE5VLMTRZUTiuzs7GAwGAqNz8zMxMcff4ylS5eiY8eOAIBFixahUaNG2LVrFx588EFs2LABhw4dwsaNG+Hr64sWLVpgwoQJGDt2LBISEqDVaiujyURERGSl6nmeqJKuKTp8+DD8/f1Rt25d9O7dGydPngQApKSkIDc3FxEREUrdhg0bolatWkhOTgYAJCcnIygoCL6+vkqdqKgomEwmHDx4sNhlZmdnw2QyqV5ERERUeTTV7KKiCg9FISEhWLx4MdatW4e5c+fi2LFjCAsLw8WLF2E0GqHVauHu7q6axtfXF0ajEQBgNBpVgchSbikrTmJiIvR6vfIKCAio2BUjIiIiAEA1vaSo4r8+i46OVv7frFkzhISEIDAwEF9++SUcHR0renGK+Ph4jBo1Shk2mUwMRkRERJWoep0nugW35Lu7u+O+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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%matplotlib inline\n",
"lpp_sorted = posting_account_likes.sort_values('likes_per_post').reset_index()\n",
"plt.plot(lpp_sorted['likes_per_post'])\n",
"plt.title('Mean likes per post for accounts who posted during the sample')\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 44,
"id": "729e665e",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>account</th>\n",
" <th>likes</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>did:plc:btaxnpi4resvm2uz4n7tcp3f</td>\n",
" <td>2.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>did:plc:wxj3cnbus6js5f7hjwowoxoq</td>\n",
" <td>2.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>did:plc:acmcckkebktixw6lzhx76fsq</td>\n",
" <td>61.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>did:plc:mgsxkvihm65lecdzbavku3tk</td>\n",
" <td>7.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>did:plc:e4r2dxzbadqabu63wne4tosx</td>\n",
" <td>3.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>247965</th>\n",
" <td>did:plc:zeau3uhk2sm4bdpeg7cl2hk7</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>247966</th>\n",
" <td>did:plc:fl4mmwjixqnonmwfxti6tbb7</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>247967</th>\n",
" <td>did:plc:ylz7ikmlz7kn33s6xfn2hfbr</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>247968</th>\n",
" <td>did:plc:6dqstbx266mlgjvdmr4u4vbw</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>247969</th>\n",
" <td>did:plc:qrpae44n3nmwjvm4le6foryx</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>134907 rows × 2 columns</p>\n",
"</div>"
],
"text/plain": [
" account likes\n",
"1 did:plc:btaxnpi4resvm2uz4n7tcp3f 2.0\n",
"6 did:plc:wxj3cnbus6js5f7hjwowoxoq 2.0\n",
"9 did:plc:acmcckkebktixw6lzhx76fsq 61.0\n",
"10 did:plc:mgsxkvihm65lecdzbavku3tk 7.0\n",
"11 did:plc:e4r2dxzbadqabu63wne4tosx 3.0\n",
"... ... ...\n",
"247965 did:plc:zeau3uhk2sm4bdpeg7cl2hk7 0.0\n",
"247966 did:plc:fl4mmwjixqnonmwfxti6tbb7 0.0\n",
"247967 did:plc:ylz7ikmlz7kn33s6xfn2hfbr 0.0\n",
"247968 did:plc:6dqstbx266mlgjvdmr4u4vbw 0.0\n",
"247969 did:plc:qrpae44n3nmwjvm4le6foryx 0.0\n",
"\n",
"[134907 rows x 2 columns]"
]
},
"execution_count": 44,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"non_posting_accounts = accounts[~accounts['account'].isin(posting_accounts)]\n",
"non_posting_accounts"
]
},
{
"cell_type": "code",
"execution_count": 45,
"id": "a7840d6e",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.4999944406764585"
]
},
"execution_count": 45,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"non_posting_accounts.shape[0] / accounts.shape[0]"
]
},
{
"cell_type": "code",
"execution_count": 46,
"id": "dab2dfa5",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"269817"
]
},
"execution_count": 46,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"accounts.shape[0]"
]
},
{
"cell_type": "code",
"execution_count": 47,
"id": "03ea581a",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.2707272417294877"
]
},
"execution_count": 47,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sum(non_posting_accounts['likes'] > 0) / non_posting_accounts.shape[0]"
]
},
{
"cell_type": "code",
"execution_count": 48,
"id": "ab29ccc1",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.06262517756192973"
]
},
"execution_count": 48,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"non_posting_accounts['likes'].sum() / accounts['likes'].sum()"
]
},
{
"cell_type": "code",
"execution_count": 49,
"id": "d495fad6",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>account</th>\n",
" <th>likes</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>did:plc:lhfbzpkdw2jk5i6im5pd2mi5</td>\n",
" <td>160.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>did:plc:z3ds6onyuoyfnx42qgoddhbp</td>\n",
" <td>313.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>did:plc:hqzxqh634sd546rfoazslb5h</td>\n",
" <td>103.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>did:plc:ats4shmeia7i7ildqm3denmd</td>\n",
" <td>405.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>did:plc:7o55wjsyg2ylsmlr5to6gb67</td>\n",
" <td>313.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>130508</th>\n",
" <td>did:plc:d5torywdns2h4kghsqmil7k6</td>\n",
" <td>46.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>130569</th>\n",
" <td>did:plc:2tdfuxjpemewkkyhi2db7lck</td>\n",
" <td>46.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>130642</th>\n",
" <td>did:plc:en7khbuwadt72huhdyrvhf7s</td>\n",
" <td>33.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>131261</th>\n",
" <td>did:plc:oafrik4tx7nkmqysa4kpnuv5</td>\n",
" <td>243.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>132789</th>\n",
" <td>did:plc:osxrt2mj6274mw4de6duncpu</td>\n",
" <td>39.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>13522 rows × 2 columns</p>\n",
"</div>"
],
"text/plain": [
" account likes\n",
"0 did:plc:lhfbzpkdw2jk5i6im5pd2mi5 160.0\n",
"3 did:plc:z3ds6onyuoyfnx42qgoddhbp 313.0\n",
"4 did:plc:hqzxqh634sd546rfoazslb5h 103.0\n",
"5 did:plc:ats4shmeia7i7ildqm3denmd 405.0\n",
"7 did:plc:7o55wjsyg2ylsmlr5to6gb67 313.0\n",
"... ... ...\n",
"130508 did:plc:d5torywdns2h4kghsqmil7k6 46.0\n",
"130569 did:plc:2tdfuxjpemewkkyhi2db7lck 46.0\n",
"130642 did:plc:en7khbuwadt72huhdyrvhf7s 33.0\n",
"131261 did:plc:oafrik4tx7nkmqysa4kpnuv5 243.0\n",
"132789 did:plc:osxrt2mj6274mw4de6duncpu 39.0\n",
"\n",
"[13522 rows x 2 columns]"
]
},
"execution_count": 49,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"top_accounts"
]
},
{
"cell_type": "code",
"execution_count": 135,
"id": "77340e08",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>account</th>\n",
" <th>likes</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>did:plc:nvog7rczakwzh5ckxnjnwqdd</td>\n",
" <td>2009.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>did:plc:z3eu4ec7csnznxrrdrabudgj</td>\n",
" <td>331.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>did:plc:m2hze6zxa744iberzknpkc3i</td>\n",
" <td>12.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>did:plc:ykzmsemoxmlzmrci2p77eqkm</td>\n",
" <td>41.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>did:plc:afrooick4a2hy2m2eme5ognc</td>\n",
" <td>103.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>45665</th>\n",
" <td>did:plc:efkxngznfeo2onvrjhskmmou</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>45666</th>\n",
" <td>did:plc:pv4x356soulpp7spindi57gz</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>45667</th>\n",
" <td>did:plc:w5reveglbupc6sz4txst2v7b</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>45668</th>\n",
" <td>did:plc:7o6uylwbtcpwk5c5pqa67fsl</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>45669</th>\n",
" <td>did:plc:uppr7hyd3a2zzss54drq2s5j</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>45670 rows × 2 columns</p>\n",
"</div>"
],
"text/plain": [
" account likes\n",
"0 did:plc:nvog7rczakwzh5ckxnjnwqdd 2009.0\n",
"1 did:plc:z3eu4ec7csnznxrrdrabudgj 331.0\n",
"2 did:plc:m2hze6zxa744iberzknpkc3i 12.0\n",
"3 did:plc:ykzmsemoxmlzmrci2p77eqkm 41.0\n",
"4 did:plc:afrooick4a2hy2m2eme5ognc 103.0\n",
"... ... ...\n",
"45665 did:plc:efkxngznfeo2onvrjhskmmou 0.0\n",
"45666 did:plc:pv4x356soulpp7spindi57gz 0.0\n",
"45667 did:plc:w5reveglbupc6sz4txst2v7b 0.0\n",
"45668 did:plc:7o6uylwbtcpwk5c5pqa67fsl 0.0\n",
"45669 did:plc:uppr7hyd3a2zzss54drq2s5j 0.0\n",
"\n",
"[45670 rows x 2 columns]"
]
},
"execution_count": 135,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"accounts"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "75bbb3eb",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.2"
}
},
"nbformat": 4,
"nbformat_minor": 5
}