Commit
•
ed3130d
1
Parent(s):
130902a
Updating README
Browse files- main.py +1 -32
- notebooks/validate.ipynb +235 -163
- utilities/readme_update.py +48 -0
main.py
CHANGED
@@ -8,6 +8,7 @@ from huggingface_hub import login
|
|
8 |
|
9 |
from my_logger import setup_logger
|
10 |
from utilities.pushshift_data import scrape_submissions_by_day, submissions_to_dataframe
|
|
|
11 |
|
12 |
# Set dataset name, path to README.md, and existing dataset details
|
13 |
subreddit = os.environ["SUBREDDIT"]
|
@@ -22,38 +23,6 @@ login(auth_token, add_to_git_credential=True)
|
|
22 |
logger = setup_logger(__name__)
|
23 |
|
24 |
|
25 |
-
def update_readme(dataset_name, subreddit, date_to_fetch):
|
26 |
-
readme_text = f"""
|
27 |
-
# {dataset_name}
|
28 |
-
|
29 |
-
## Dataset Overview
|
30 |
-
The goal is to have an open dataset of `{subreddit}` submissions. This has been taken from the Pushshift API.
|
31 |
-
|
32 |
-
## Data Collection
|
33 |
-
This has been collected with sequential calls that follow the pagination of the pushshift request.
|
34 |
-
|
35 |
-
|
36 |
-
## Data Structure
|
37 |
-
- `all_days`: All the data after `{os.environ["START_DATE"]}`
|
38 |
-
|
39 |
-
## Update Frequency
|
40 |
-
The dataset is updated daily and covers the period from `{os.environ["START_DATE"]}` to two days ago.
|
41 |
-
|
42 |
-
## Attribution
|
43 |
-
Data sourced from the Pushshift API.
|
44 |
-
|
45 |
-
## Change Log
|
46 |
-
<details>
|
47 |
-
<summary>Click to expand</summary>
|
48 |
-
|
49 |
-
- **{datetime.now().strftime('%Y-%m-%d')}:** Added data for {date_to_fetch} to the 'all_days' split and saved as CSV
|
50 |
-
|
51 |
-
</details>
|
52 |
-
"""
|
53 |
-
|
54 |
-
return readme_text
|
55 |
-
|
56 |
-
|
57 |
def main(date_to_fetch):
|
58 |
"""
|
59 |
Runs the main data processing function to fetch and process subreddit data for the specified date.
|
|
|
8 |
|
9 |
from my_logger import setup_logger
|
10 |
from utilities.pushshift_data import scrape_submissions_by_day, submissions_to_dataframe
|
11 |
+
from utilities.readme_update import update_readme
|
12 |
|
13 |
# Set dataset name, path to README.md, and existing dataset details
|
14 |
subreddit = os.environ["SUBREDDIT"]
|
|
|
23 |
logger = setup_logger(__name__)
|
24 |
|
25 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
26 |
def main(date_to_fetch):
|
27 |
"""
|
28 |
Runs the main data processing function to fetch and process subreddit data for the specified date.
|
notebooks/validate.ipynb
CHANGED
@@ -37,28 +37,42 @@
|
|
37 |
},
|
38 |
{
|
39 |
"cell_type": "code",
|
40 |
-
"execution_count":
|
41 |
-
"id": "
|
42 |
"metadata": {},
|
43 |
"outputs": [
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
44 |
{
|
45 |
"name": "stderr",
|
46 |
"output_type": "stream",
|
47 |
"text": [
|
48 |
-
"Using custom data configuration derek-thomas--dataset-creator-askreddit-
|
49 |
]
|
50 |
},
|
51 |
{
|
52 |
"name": "stdout",
|
53 |
"output_type": "stream",
|
54 |
"text": [
|
55 |
-
"Downloading and preparing dataset None/None to /Users/derekthomas/.cache/huggingface/datasets/derek-thomas___parquet/derek-thomas--dataset-creator-askreddit-
|
56 |
]
|
57 |
},
|
58 |
{
|
59 |
"data": {
|
60 |
"application/vnd.jupyter.widget-view+json": {
|
61 |
-
"model_id": "
|
62 |
"version_major": 2,
|
63 |
"version_minor": 0
|
64 |
},
|
@@ -72,7 +86,21 @@
|
|
72 |
{
|
73 |
"data": {
|
74 |
"application/vnd.jupyter.widget-view+json": {
|
75 |
-
"model_id": "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
76 |
"version_major": 2,
|
77 |
"version_minor": 0
|
78 |
},
|
@@ -91,7 +119,7 @@
|
|
91 |
"version_minor": 0
|
92 |
},
|
93 |
"text/plain": [
|
94 |
-
"Generating all_days split: 0%| | 0/
|
95 |
]
|
96 |
},
|
97 |
"metadata": {},
|
@@ -101,13 +129,13 @@
|
|
101 |
"name": "stdout",
|
102 |
"output_type": "stream",
|
103 |
"text": [
|
104 |
-
"Dataset parquet downloaded and prepared to /Users/derekthomas/.cache/huggingface/datasets/derek-thomas___parquet/derek-thomas--dataset-creator-askreddit-
|
105 |
]
|
106 |
},
|
107 |
{
|
108 |
"data": {
|
109 |
"application/vnd.jupyter.widget-view+json": {
|
110 |
-
"model_id": "
|
111 |
"version_major": 2,
|
112 |
"version_minor": 0
|
113 |
},
|
@@ -125,7 +153,7 @@
|
|
125 |
},
|
126 |
{
|
127 |
"cell_type": "code",
|
128 |
-
"execution_count":
|
129 |
"id": "ba84be68",
|
130 |
"metadata": {},
|
131 |
"outputs": [
|
@@ -161,6 +189,8 @@
|
|
161 |
" <th>id</th>\n",
|
162 |
" <th>downs</th>\n",
|
163 |
" <th>ups</th>\n",
|
|
|
|
|
164 |
" </tr>\n",
|
165 |
" </thead>\n",
|
166 |
" <tbody>\n",
|
@@ -172,11 +202,13 @@
|
|
172 |
" <td>/r/AskReddit/comments/15sn6y/reddit_if_someone...</td>\n",
|
173 |
" <td>They would be talking about you without your p...</td>\n",
|
174 |
" <td>http://www.reddit.com/r/AskReddit/comments/15s...</td>\n",
|
175 |
-
" <td>2013-01-01 23:59:40</td>\n",
|
176 |
" <td>[deleted]</td>\n",
|
177 |
" <td>15sn6y</td>\n",
|
178 |
" <td>0</td>\n",
|
179 |
" <td>2</td>\n",
|
|
|
|
|
180 |
" </tr>\n",
|
181 |
" <tr>\n",
|
182 |
" <th>1</th>\n",
|
@@ -186,11 +218,13 @@
|
|
186 |
" <td>/r/AskReddit/comments/15sn6m/what_kind_of_car_...</td>\n",
|
187 |
" <td>I've always wanted to know what kind of car th...</td>\n",
|
188 |
" <td>http://www.reddit.com/r/AskReddit/comments/15s...</td>\n",
|
189 |
-
" <td>2013-01-01 23:59:31</td>\n",
|
190 |
" <td>PaytonAdams</td>\n",
|
191 |
" <td>15sn6m</td>\n",
|
192 |
" <td>0</td>\n",
|
193 |
" <td>5</td>\n",
|
|
|
|
|
194 |
" </tr>\n",
|
195 |
" <tr>\n",
|
196 |
" <th>2</th>\n",
|
@@ -200,11 +234,13 @@
|
|
200 |
" <td>/r/AskReddit/comments/15sn6b/what_movies_have_...</td>\n",
|
201 |
" <td></td>\n",
|
202 |
" <td>http://www.reddit.com/r/AskReddit/comments/15s...</td>\n",
|
203 |
-
" <td>2013-01-01 23:59:20</td>\n",
|
204 |
" <td>[deleted]</td>\n",
|
205 |
" <td>15sn6b</td>\n",
|
206 |
" <td>0</td>\n",
|
207 |
" <td>1</td>\n",
|
|
|
|
|
208 |
" </tr>\n",
|
209 |
" <tr>\n",
|
210 |
" <th>3</th>\n",
|
@@ -214,11 +250,13 @@
|
|
214 |
" <td>/r/AskReddit/comments/15sn4u/worst_fears/</td>\n",
|
215 |
" <td>So what is your worst fear, reddit?</td>\n",
|
216 |
" <td>http://www.reddit.com/r/AskReddit/comments/15s...</td>\n",
|
217 |
-
" <td>2013-01-01 23:58:37</td>\n",
|
218 |
" <td>[deleted]</td>\n",
|
219 |
" <td>15sn4u</td>\n",
|
220 |
" <td>0</td>\n",
|
221 |
" <td>0</td>\n",
|
|
|
|
|
222 |
" </tr>\n",
|
223 |
" <tr>\n",
|
224 |
" <th>4</th>\n",
|
@@ -228,11 +266,13 @@
|
|
228 |
" <td>/r/AskReddit/comments/15sn44/if_there_was_a_ty...</td>\n",
|
229 |
" <td></td>\n",
|
230 |
" <td>http://www.reddit.com/r/AskReddit/comments/15s...</td>\n",
|
231 |
-
" <td>2013-01-01 23:58:15</td>\n",
|
232 |
" <td>Honeybeard</td>\n",
|
233 |
" <td>15sn44</td>\n",
|
234 |
" <td>0</td>\n",
|
235 |
" <td>11</td>\n",
|
|
|
|
|
236 |
" </tr>\n",
|
237 |
" <tr>\n",
|
238 |
" <th>...</th>\n",
|
@@ -247,165 +287,177 @@
|
|
247 |
" <td>...</td>\n",
|
248 |
" <td>...</td>\n",
|
249 |
" <td>...</td>\n",
|
|
|
|
|
250 |
" </tr>\n",
|
251 |
" <tr>\n",
|
252 |
-
" <th>
|
253 |
-
" <td>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
254 |
" <td>1</td>\n",
|
255 |
-
" <td>
|
256 |
-
" <td
|
|
|
257 |
" <td></td>\n",
|
258 |
-
" <td>http://www.reddit.com/r/AskReddit/comments/
|
259 |
-
" <td>
|
260 |
-
" <td>
|
261 |
-
" <td>
|
262 |
" <td>0</td>\n",
|
263 |
" <td>1</td>\n",
|
|
|
|
|
264 |
" </tr>\n",
|
265 |
" <tr>\n",
|
266 |
-
" <th>
|
|
|
267 |
" <td>2</td>\n",
|
268 |
-
" <td>
|
269 |
-
" <td
|
270 |
-
" <td>/r/AskReddit/comments/2cjj5v/if_you_used_a_pri...</td>\n",
|
271 |
" <td></td>\n",
|
272 |
-
" <td>http://www.reddit.com/r/AskReddit/comments/
|
273 |
-
" <td>
|
274 |
-
" <td>
|
275 |
-
" <td>
|
276 |
" <td>0</td>\n",
|
277 |
-
" <td>
|
|
|
|
|
278 |
" </tr>\n",
|
279 |
" <tr>\n",
|
280 |
-
" <th>
|
281 |
-
" <td>
|
282 |
-
" <td>
|
283 |
-
" <td>
|
284 |
-
" <td>/r/AskReddit/comments/
|
285 |
" <td></td>\n",
|
286 |
-
" <td>http://www.reddit.com/r/AskReddit/comments/
|
287 |
-
" <td>
|
288 |
-
" <td>
|
289 |
-
" <td>
|
290 |
-
" <td>0</td>\n",
|
291 |
" <td>0</td>\n",
|
|
|
|
|
|
|
292 |
" </tr>\n",
|
293 |
" <tr>\n",
|
294 |
-
" <th>
|
295 |
-
" <td>1452</td>\n",
|
296 |
-
" <td>3140</td>\n",
|
297 |
-
" <td>People who refuse to be organ donors, why do y...</td>\n",
|
298 |
-
" <td>/r/AskReddit/comments/2cjj31/people_who_refuse...</td>\n",
|
299 |
-
" <td>R.I.P my inbox</td>\n",
|
300 |
-
" <td>http://www.reddit.com/r/AskReddit/comments/2cj...</td>\n",
|
301 |
-
" <td>2014-08-04 00:00:36</td>\n",
|
302 |
-
" <td>JohnnySniperr</td>\n",
|
303 |
-
" <td>2cjj31</td>\n",
|
304 |
" <td>0</td>\n",
|
305 |
-
" <td>
|
306 |
-
"
|
307 |
-
"
|
308 |
-
" <
|
309 |
-
" <td>
|
310 |
-
" <td>
|
311 |
-
" <td>
|
312 |
-
" <td
|
313 |
-
" <td></td>\n",
|
314 |
-
" <td>http://www.reddit.com/r/AskReddit/comments/2cj...</td>\n",
|
315 |
-
" <td>2014-08-04 00:00:23</td>\n",
|
316 |
-
" <td>Nicopip</td>\n",
|
317 |
-
" <td>2cjj2a</td>\n",
|
318 |
" <td>0</td>\n",
|
319 |
-
" <td>
|
|
|
|
|
320 |
" </tr>\n",
|
321 |
" </tbody>\n",
|
322 |
"</table>\n",
|
323 |
-
"<p>
|
324 |
"</div>"
|
325 |
],
|
326 |
"text/plain": [
|
327 |
-
"
|
328 |
-
"0
|
329 |
-
"1
|
330 |
-
"2
|
331 |
-
"3
|
332 |
-
"4
|
333 |
-
"...
|
334 |
-
"
|
335 |
-
"
|
336 |
-
"
|
337 |
-
"
|
338 |
-
"
|
339 |
"\n",
|
340 |
-
"
|
341 |
-
"0
|
342 |
-
"1
|
343 |
-
"2
|
344 |
-
"3
|
345 |
-
"4
|
346 |
-
"...
|
347 |
-
"
|
348 |
-
"
|
349 |
-
"
|
350 |
-
"
|
351 |
-
"
|
352 |
"\n",
|
353 |
-
"
|
354 |
-
"0
|
355 |
-
"1
|
356 |
-
"2
|
357 |
-
"3
|
358 |
-
"4
|
359 |
-
"...
|
360 |
-
"
|
361 |
-
"
|
362 |
-
"
|
363 |
-
"
|
364 |
-
"
|
365 |
"\n",
|
366 |
-
"
|
367 |
-
"0
|
368 |
-
"1
|
369 |
-
"2
|
370 |
-
"3
|
371 |
-
"4
|
372 |
-
"...
|
373 |
-
"
|
374 |
-
"
|
375 |
-
"
|
376 |
-
"
|
377 |
-
"
|
378 |
"\n",
|
379 |
-
"
|
380 |
-
"0
|
381 |
-
"1
|
382 |
-
"2
|
383 |
-
"3
|
384 |
-
"4
|
385 |
-
"...
|
386 |
-
"
|
387 |
-
"
|
388 |
-
"
|
389 |
-
"
|
390 |
-
"
|
391 |
"\n",
|
392 |
-
"
|
393 |
-
"0
|
394 |
-
"1
|
395 |
-
"2
|
396 |
-
"3
|
397 |
-
"4
|
398 |
-
"...
|
399 |
-
"
|
400 |
-
"
|
401 |
-
"
|
402 |
-
"
|
403 |
-
"
|
404 |
"\n",
|
405 |
-
"[
|
406 |
]
|
407 |
},
|
408 |
-
"execution_count":
|
409 |
"metadata": {},
|
410 |
"output_type": "execute_result"
|
411 |
}
|
@@ -418,7 +470,7 @@
|
|
418 |
{
|
419 |
"cell_type": "code",
|
420 |
"execution_count": 16,
|
421 |
-
"id": "
|
422 |
"metadata": {},
|
423 |
"outputs": [
|
424 |
{
|
@@ -450,7 +502,7 @@
|
|
450 |
{
|
451 |
"cell_type": "code",
|
452 |
"execution_count": 18,
|
453 |
-
"id": "
|
454 |
"metadata": {},
|
455 |
"outputs": [],
|
456 |
"source": [
|
@@ -460,7 +512,7 @@
|
|
460 |
{
|
461 |
"cell_type": "code",
|
462 |
"execution_count": 21,
|
463 |
-
"id": "
|
464 |
"metadata": {},
|
465 |
"outputs": [],
|
466 |
"source": [
|
@@ -471,8 +523,40 @@
|
|
471 |
},
|
472 |
{
|
473 |
"cell_type": "code",
|
474 |
-
"execution_count":
|
475 |
-
"id": "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
476 |
"metadata": {},
|
477 |
"outputs": [
|
478 |
{
|
@@ -481,13 +565,13 @@
|
|
481 |
"<Axes: >"
|
482 |
]
|
483 |
},
|
484 |
-
"execution_count":
|
485 |
"metadata": {},
|
486 |
"output_type": "execute_result"
|
487 |
},
|
488 |
{
|
489 |
"data": {
|
490 |
-
"image/png": "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GsnJyaioqEBwcLC34/yHaAQAYteuXTaX1dTUiEmTJonBgweLiooKh+N8+OGHolWrVuLu3btCCCHGjx8vUlJSLPqcP39eABClpaVCCCHUarXIzc216JOdnS1CQ0Ptrufu3buioqJCunz33XcCgPj+++9FTU2NbJeqqiqRl5cnqqqqRM/X9oqer+0VNTU1dv+aLnL0s3UbV9sGLN0j8vLyxICle2TN4mwcZ22u3NZ6zj2V2ZUsrmyvdbv53Dd0/rx5MZ9/b2dpSdmVnF+puZWevbnkz83NFQCc1hdNzSMv/xmNRjzzzDO4du0aDh8+7LSKHD58OO7du4erV6+iV69eCA8Pr3e2yXTd9D4se33svU8LALRaLbRabb12tVoNtVrt0ra5Q61Ww1Crsvi3rb8m9pa70896Xbb6222rU0l/5cziqJ8r+ezNn3k/6zn3VGZXszjb3nrjmM19Q+fPF3jqsdQUlJwdUG5+peYGlJ0dUH5+XyT791SZCqpvvvkGhw4dwn333ef0NiUlJfDz80NoaCgAIDY2FseOHbN43VSn06FXr15o37691KewsNBiHJ1Oh9jYWBm3hoiIiMg1bp+punPnDi5duiRdv3LlCkpKStChQwd07twZ//Vf/4Uvv/wS+/btQ21tLcrKygAAHTp0gEajgV6vx+eff44xY8YgKCgIer0eCxcuxHPPPScVTMnJycjMzMTMmTOxePFinDt3DuvWrcPatWul9b700kt4/PHHsXr1aiQmJmL79u04c+aMxdcuEBERETUVt4uqM2fOYMyYMdJ10yfwpk+fjoyMDOzZswcAMGjQIIvb/f3vf8fo0aOh1Wqxfft2ZGRkwGAwICoqCgsXLrT4JF+7du1w8OBBpKamIiYmBh07dkR6err0dQoA8MgjjyA3NxdLly7Fa6+9hoceegh5eXno37+/u5tERERE1GhuF1WjR4+GcPCBQUfLAGDIkCE4deqU0/UMHDgQx48fd9hnypQpmDJlitOxiIiIiDyNv/1HREREJAMWVUREREQyYFFFREREJAMWVUREREQyYFFFREREJAMWVUREREQyYFFFREREJAMWVUREROSWbq/mezuCT2JRRURERCQDFlVEREREMmBRRURERCQDFlVEREREMmBRRURERCQDFlVEREREMmBRRURERCQDFlVEREREMmBRRURERCQDFlVERERE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5mHfvn04duwYHnjgAYd9hw8fDgC4dOkSunfvjvDwcJw+fdqiT3l5OQBI78MKDw+X2sz7BAcH2zxLBQBLlixBWlqadL2yshKRkZGIi4tDcHCwexvogNFohE6nwxtn/GCoU8k2rqdp/QSyhtYpLjeg7OwA83uTkrMDys2v1NyAsrMDTZv/XIb873E2Go3YvXu37OPKQfaiSgiB+fPnY9euXThy5AiioqKc3qakpAQA0LlzZwBAbGws/vSnP+HWrVsIDQ0FAOh0OgQHB6Nv375SH+sKWKfTITY21u56tFottFptvXa1Wg21Wu3S9rnDUKeCoVZ5Dzil5gaUnR1gfm9ScnZAufmVmhtQdnagafJ74rnVl8n+RvXU1FR8/PHHyM3NRVBQEMrKylBWVoZffvkFAHD58mVkZWWhqKgIV69exZ49e/DCCy9g1KhRGDhwIAAgLi4Offv2xfPPP4+vvvoKBw4cwNKlS5GamioVRXPmzMG3336LV155BRcuXMCGDRvwySefYOHChXJvEhEREZFTshdVf/7zn1FRUYHRo0ejc+fO0mXHjh0AAI1Gg0OHDiEuLg69e/fGyy+/jMmTJ2Pv3r3SGP7+/ti3bx/8/f0RGxuL5557Di+88AKWL18u9YmKikJ+fj50Oh2io6OxevVqfPDBB/w6BSIiIvIKj7z850hkZCSOHj3qdJyuXbs6fYPb6NGjUVxc7FY+IiIiIk/gb/8RERERyYBFFREREZEMWFQRERERyYBFFREREZEMWFQRERERyYBFFREREZEMWFQRERERyYBFFREREZEMWFQRERERyYBFFREREZEMWFQRERERyYBFFREREZEMWFQRERERyYBFFREREZEMWFQRERERyYBFFREREZEMWFQRERERyYBFFREREZEMWFQRERERyYBFFREREZEMWFQRERERyYBFFREREZEMWFQRERERyYBFFREREZEMWFQRERERyYBFFREREZEMWFQRERERyYBFFREREZEMWFQRERERyYBFFREREZEMWFQRERERyYBFFREREZEMWFQRERERyYBFFREREZEMFF9UZWdno1u3bggICMDw4cNx+vRpb0ciIiKiFkjRRdWOHTuQlpaGZcuW4csvv0R0dDTi4+Nx69Ytb0cjIiKiFkbRRdWaNWswe/ZszJgxA3379sXGjRsRGBiIzZs3ezsaERERtTCtvB2goWpqalBUVIQlS5ZIbX5+fhg3bhz0er3N2xgMBhgMBul6RUUFAODHH3+E0WiULZvRaER1dTVaGf1QW6eSbVxPa1UnUF1dp7jcgLKzA8zvTUrODig3v1JzA8rODjRt/h9++EH2MU3PsQAghJB9/EYRCvWvf/1LABAnT560aF+0aJEYNmyYzdssW7ZMAOCFF1544YUXXprB5bvvvmuKksNlij1T1RBLlixBWlqadL2urg4//vgj7rvvPqhU8lXrlZWViIyMxHfffYfg4GDZxvU0peYGlJ0dYH5vUnJ2QLn5lZobUHZ2oPnkLy0tRUREhLfjWFBsUdWxY0f4+/ujvLzcor28vBzh4eE2b6PVaqHVai3aQkJCPBURwcHBitxhlZobUHZ2gPm9ScnZAeXmV2puQNnZAeXnv//+++Hn51tvDfetNG7QaDSIiYlBYWGh1FZXV4fCwkLExsZ6MRkRERG1RIo9UwUAaWlpmD59OoYOHYphw4bh3XffRVVVFWbMmOHtaERERNTCKLqo+u1vf4t///vfSE9PR1lZGQYNGoSCggKEhYV5NZdWq8WyZcvqvdTo65SaG1B2doD5vUnJ2QHl5ldqbkDZ2QHm9ySVEL72eUQiIiIi5VHse6qIiIiIfAmLKiIiIiIZsKgiIiIikgGLKiIiIiIZtJiiasWKFXj44YcRFBSE0NBQJCUl4eLFixZ97t69i9TUVNx3331o27YtJk+eXO/LRf/whz8gJiYGWq0WgwYNqreeixcvYsyYMQgLC0NAQAAefPBBLF261KXfFszOzka3bt0QEBCA4cOH4/Tp0xa5g4OD0bFjR7Rt2xYqlQq3b9/22dwmK1asQGhoKPz8/KBSqaDVajF27FhcuHBB6uOr+U1z36pVK6hUKovLnDlzfDo7ALzyyiv1cpsuO3fu9Pn8K1aswMCBA6FWq+Hn5we1Wo2EhASLfN7Mf+zYMUyaNAkRERFQqVTIy8uzyP7www+jdevW0Gg00Gg0UKlUKCkpkTW7uUuXLiEoKMjlLzT25vFG7tzAf+Zco9HA398f/v7+aN++PZ588knpeOOr2U35g4OD7R5rfD1/Ux1vPJUfAC5fvoynnnoKnTp1QnBwMJ555pl6+Zzy9u/kNJX4+HixZcsWce7cOVFSUiImTpwounTpIu7cuSP1mTNnjoiMjBSFhYXizJkzYsSIEeKRRx6xGGf+/Pli/fr14vnnnxfR0dH11nP58mWxefNmUVJSIq5evSp2794tQkNDxZIlSxzm2759u9BoNGLz5s3i/PnzYvbs2SIkJESMGTNGyv3HP/5R9OrVS4SEhAgA4qeffvLZ3OXl5dK8T58+XWzdulXk5+eLkSNHitatW4v7779f3Lt3z6fzm/aZoUOHiqefflqMHTtW3H///eLy5cuioqLCp7MLIURcXJx49913xZEjR8ShQ4fE2LFjRbt27USbNm3Ezz//7PP5x40bJzp16iTGjh0rdu7cKR577DHRunVrMWTIEFFbW+v1/Pv37xevv/66+PTTTwUAsWvXLmmZad958803xdy5c8WAAQMEYPlbpXJkN6mpqRFDhw4VCQkJol27dg5zC+H9443cuc0fr8uWLRMffvihGDNmjAgPDxcJCQkiMjJS3Lt3z2ezC/HrPtOrVy8xefJk6fF6//33ixs3bkhj+HL+pjreeCr/nTt3xIMPPiieeuopcfbsWXH27Fnx5JNPiocfflg63riixRRV1m7duiUAiKNHjwohhLh9+7ZQq9Vi586dUp9//OMfAoDQ6/X1br9s2TKHd7i5hQsXikcffdRhn2HDhonU1FTpem1trYiIiBArVqywmdt0kFNKblv5L126pIj8jz/+uHjppZcUu8+YmPJPnDhREfkPHDgg/Pz8pALWfN/R6XRez2/OuqiydubMGQFAfPDBB0II+ef+lVdeEc8995zYsmWLS08wvnK88VRu8+ybN28WAERxcbHPZzcda8zze+p448m5N8/vqeON3PmtjzemzCqVSuh0Oqfjm7SYl/+sVVRUAAA6dOgAACgqKoLRaMS4ceOkPr1790aXLl2g1+sbvJ5Lly6hoKAAjz/+uN0+NTU1KCoqsli3n58fxo0bV2/dptwmSsltcvPmTQC//mZTZGSkYvLn5OSgZ8+eAICPPvoI1dXVislu8tlnnwEApk6dCsD39x2DwSC9ZAz8Z9/38/PDiRMnvJrfXT///DMAoF27dgDknfvDhw9j586dyM7Odqm/rxxvPJnbPPvhw4cRFRWF8vJyRWTPyclBx44d8cgjjwAAWrduDUBZcw949njjifzWxxsACAgIkI43rmqRRVVdXR0WLFiAkSNHon///gCAsrIyaDSaeq/NhoWFoayszO11PPLIIwgICMBDDz2Exx57DMuXL7fb9/vvv0dtbW29b4K3XrcptymzUnIDwIYNG9CmTRtER0ejdevWOHr0KDQajSLyJycn46OPPsLAgQPRs2dPFBQU4LnnnlNEdhPTvtO6dWs899xzAHx/3xkxYgTatGmDxYsX486dO5g/fz46d+6Muro63Lx506v53VFXV4esrCwAQI8ePQDIN/c//PADXnzxRWzdutXlH8b1heONJ3MDwPr169G7d28AwBdffAGdTocffvjB57MnJyfj448/RmFhIdq2bQuNRoMVK1YAUM7cA5493ngqv/nxprq6GlVVVfjjH/+I2tpa6WSAK1pkUZWamopz585h+/btHlvHjh078OWXXyI3Nxf5+fl45513AADHjx9H27ZtpUtOTo7LY5pyp6eneyq2R3IDwLRp0/Dkk08iPDwcI0eOxDPPPIO7d+8qIn9KSgr27NmDa9euobCwEB999BF27drl/hsYvZDd5Pe//z2uX7+Ol19+WdbM5uTO36lTJ+zcuRN79+5FUFAQCgoKMGLECAwZMsQjv0zvqflPTU2t96EYucyePRvJyckYNWqUzeW+erzxZG4AKC4uRnh4OHbu3ImePXvimWeeQU1NjRzRPZo9JSUF8fHx2LhxI3766SfpWHP58mVZsgOen3vAs8cbT+U3P960bdsW7dq1w+3bt90+3ij6t/8aYt68edi3bx+OHTuGBx54QGoPDw9HTU0Nbt++bVFJl5eXIzw83O31REZGAgD69u2L2tpapKSk4OWXX8bQoUMtPgEUFhYGrVYLf3//ek/S5us2z33t2jXF5DZ5/fXXcfz4cZw8eRL3338/2rdvj127dikiv/U+0759ewC/nlL29eym/J9++in8/f3xhz/8QWpXwtzHxcUhISEBu3btwv79+xEdHY3w8HA8+OCDXs3vKtO+89e//tXiSUCu7IcPH8aePXukAlAIgbq6OrRq1QqbNm3C1KlTffJ446ncpuwHDx7E8ePHERUVhSeeeALt27fHpUuXfD67Kb9p7kNDQwH8+pK0EubelN+TxxtP5o+Li8Ply5fx/fffo1WrVggJCZGON65qMWeqhBCYN28edu3aJb3Gbi4mJgZqtRqFhYVS28WLF3H9+nXExsY2at11dXUwGo2oq6tD69at0aNHD+kSFBQEjUaDmJgYi3XX1dWhsLAQI0aMUGRu07ptzbv49QMSMBgMPp3f3j5jesA++uijPpsdsJz77t2748knn0SnTp2k/r4899b5jxw5gujoaBw+fBi3bt3CE0884dX8zljvO6aCzUSu7Hq9HiUlJdJl+fLlCAoKQklJCZ566imfPd7IndvR49V0vImIiPDZ7Kac1vlNx5rOnTv79Nxb5/fk8cZT+c117NgRISEhFscbl7n8lnaFmzt3rmjXrp04cuSIuHnzpnSprq6W+syZM0d06dJFHD58WJw5c0bExsaK2NhYi3G++eYbUVxcLH7/+9+Lnj17iuLiYlFcXCwMBoMQQoiPP/5Y7NixQ5SWlorLly+LHTt2iIiICDFt2jSH+bZv3y60Wq3YunWrKC0tFSkpKSIkJERMnz5dyv3VV18JnU4n3nnnHQFAHDt2TBQXF4sXX3zR53KXlZUJIYSYNm2aCAgIEO+//7744osvxJ49e8T48eNF+/btpY+y+uK8l5WViblz54qgoCAxY8YMUVBQIE6fPi22bt0qunXrJkaNGuXT2YX4zz7/8ccfCwAiJydHEfu8ef7WrVuL7OxsodfrxXvvvSdCQkLE/PnzfSL/zz//LI0FQKxZs0YUFxeLa9euSXO/Z88eodPpxF/+8hcBQHz00UeiuLhY3Lx5U5bs1lz9JJS3jzdy5zZ/vM6aNUsUFBRIx5uJEyeKDh06iPLycp+cc9P+npycLB0rTceaLl26iJEjR0pj+HL+pjreeCq/EEJs3rxZ6PV6cenSJfGXv/xFdOjQQaSlpTkd21yLKarwfx8Ltr5s2bJF6vPLL7+I//f//p9o3769CAwMFE899ZS4efOmxTiPP/64zXGuXLkihPj1jhsyZIho27ataNOmjejbt6948803xS+//OI043vvvSe6dOkiNBqNGDZsmDh16pTd3OaXTZs2+VxuZ/P+5ptv+vS8O8qekJAgfezWV7M7yu/r+7yz/Js3b/aJ/H//+99tjjt9+nSnj9lly5bJkt2aq08w9ua+qY43cucWwv7+MmLECHHhwgUhhDz7iyeyO8q/YcMGqY8S88t9vPFUfiGEWLx4sQgLCxNqtVo89NBDYvXq1aKurs6lsU1UQggBIiIiImqUFvOeKiIiIiJPYlFFREREJAMWVUREREQyYFFFREREJAMWVUREREQyYFFFREREJAMWVUREREQyYFFFREREJAMWVUREREQyYFFFREREJAMWVUREREQyYFFFREREJIP/H6/lA+KJfyx/AAAAAElFTkSuQmCC\n",
|
491 |
"text/plain": [
|
492 |
"<Figure size 640x480 with 1 Axes>"
|
493 |
]
|
@@ -497,28 +581,16 @@
|
|
497 |
}
|
498 |
],
|
499 |
"source": [
|
500 |
-
"
|
501 |
-
]
|
502 |
-
},
|
503 |
-
{
|
504 |
-
"cell_type": "code",
|
505 |
-
"execution_count": 26,
|
506 |
-
"id": "19d6539b",
|
507 |
-
"metadata": {},
|
508 |
-
"outputs": [],
|
509 |
-
"source": [
|
510 |
-
"new_df = df.drop_duplicates(subset=['id'], keep=\"first\")"
|
511 |
]
|
512 |
},
|
513 |
{
|
514 |
"cell_type": "code",
|
515 |
"execution_count": null,
|
516 |
-
"id": "
|
517 |
"metadata": {},
|
518 |
"outputs": [],
|
519 |
-
"source": [
|
520 |
-
"new_df.date.hist(bins-)"
|
521 |
-
]
|
522 |
}
|
523 |
],
|
524 |
"metadata": {
|
|
|
37 |
},
|
38 |
{
|
39 |
"cell_type": "code",
|
40 |
+
"execution_count": 28,
|
41 |
+
"id": "00affc9a",
|
42 |
"metadata": {},
|
43 |
"outputs": [
|
44 |
+
{
|
45 |
+
"data": {
|
46 |
+
"application/vnd.jupyter.widget-view+json": {
|
47 |
+
"model_id": "a106bb47c1194b15bc289d2ef24258af",
|
48 |
+
"version_major": 2,
|
49 |
+
"version_minor": 0
|
50 |
+
},
|
51 |
+
"text/plain": [
|
52 |
+
"Downloading readme: 0%| | 0.00/804 [00:00<?, ?B/s]"
|
53 |
+
]
|
54 |
+
},
|
55 |
+
"metadata": {},
|
56 |
+
"output_type": "display_data"
|
57 |
+
},
|
58 |
{
|
59 |
"name": "stderr",
|
60 |
"output_type": "stream",
|
61 |
"text": [
|
62 |
+
"Using custom data configuration derek-thomas--dataset-creator-askreddit-a3c1289ebaf83d16\n"
|
63 |
]
|
64 |
},
|
65 |
{
|
66 |
"name": "stdout",
|
67 |
"output_type": "stream",
|
68 |
"text": [
|
69 |
+
"Downloading and preparing dataset None/None to /Users/derekthomas/.cache/huggingface/datasets/derek-thomas___parquet/derek-thomas--dataset-creator-askreddit-a3c1289ebaf83d16/0.0.0/2a3b91fbd88a2c90d1dbbb32b460cf621d31bd5b05b934492fdef7d8d6f236ec...\n"
|
70 |
]
|
71 |
},
|
72 |
{
|
73 |
"data": {
|
74 |
"application/vnd.jupyter.widget-view+json": {
|
75 |
+
"model_id": "705d55e70bf442f98a51dd0618a5c2c6",
|
76 |
"version_major": 2,
|
77 |
"version_minor": 0
|
78 |
},
|
|
|
86 |
{
|
87 |
"data": {
|
88 |
"application/vnd.jupyter.widget-view+json": {
|
89 |
+
"model_id": "139220a81674444997f7657a4c2e1a01",
|
90 |
+
"version_major": 2,
|
91 |
+
"version_minor": 0
|
92 |
+
},
|
93 |
+
"text/plain": [
|
94 |
+
"Downloading data: 0%| | 0.00/702k [00:00<?, ?B/s]"
|
95 |
+
]
|
96 |
+
},
|
97 |
+
"metadata": {},
|
98 |
+
"output_type": "display_data"
|
99 |
+
},
|
100 |
+
{
|
101 |
+
"data": {
|
102 |
+
"application/vnd.jupyter.widget-view+json": {
|
103 |
+
"model_id": "1a361406937144cebd4ff6168e56ec3d",
|
104 |
"version_major": 2,
|
105 |
"version_minor": 0
|
106 |
},
|
|
|
119 |
"version_minor": 0
|
120 |
},
|
121 |
"text/plain": [
|
122 |
+
"Generating all_days split: 0%| | 0/3272 [00:00<?, ? examples/s]"
|
123 |
]
|
124 |
},
|
125 |
"metadata": {},
|
|
|
129 |
"name": "stdout",
|
130 |
"output_type": "stream",
|
131 |
"text": [
|
132 |
+
"Dataset parquet downloaded and prepared to /Users/derekthomas/.cache/huggingface/datasets/derek-thomas___parquet/derek-thomas--dataset-creator-askreddit-a3c1289ebaf83d16/0.0.0/2a3b91fbd88a2c90d1dbbb32b460cf621d31bd5b05b934492fdef7d8d6f236ec. Subsequent calls will reuse this data.\n"
|
133 |
]
|
134 |
},
|
135 |
{
|
136 |
"data": {
|
137 |
"application/vnd.jupyter.widget-view+json": {
|
138 |
+
"model_id": "4df7107473904386aebd66c543858abd",
|
139 |
"version_major": 2,
|
140 |
"version_minor": 0
|
141 |
},
|
|
|
153 |
},
|
154 |
{
|
155 |
"cell_type": "code",
|
156 |
+
"execution_count": 29,
|
157 |
"id": "ba84be68",
|
158 |
"metadata": {},
|
159 |
"outputs": [
|
|
|
189 |
" <th>id</th>\n",
|
190 |
" <th>downs</th>\n",
|
191 |
" <th>ups</th>\n",
|
192 |
+
" <th>date</th>\n",
|
193 |
+
" <th>time</th>\n",
|
194 |
" </tr>\n",
|
195 |
" </thead>\n",
|
196 |
" <tbody>\n",
|
|
|
202 |
" <td>/r/AskReddit/comments/15sn6y/reddit_if_someone...</td>\n",
|
203 |
" <td>They would be talking about you without your p...</td>\n",
|
204 |
" <td>http://www.reddit.com/r/AskReddit/comments/15s...</td>\n",
|
205 |
+
" <td>2013-01-01 23:59:40+00:00</td>\n",
|
206 |
" <td>[deleted]</td>\n",
|
207 |
" <td>15sn6y</td>\n",
|
208 |
" <td>0</td>\n",
|
209 |
" <td>2</td>\n",
|
210 |
+
" <td>2013-01-01</td>\n",
|
211 |
+
" <td>23:59:40</td>\n",
|
212 |
" </tr>\n",
|
213 |
" <tr>\n",
|
214 |
" <th>1</th>\n",
|
|
|
218 |
" <td>/r/AskReddit/comments/15sn6m/what_kind_of_car_...</td>\n",
|
219 |
" <td>I've always wanted to know what kind of car th...</td>\n",
|
220 |
" <td>http://www.reddit.com/r/AskReddit/comments/15s...</td>\n",
|
221 |
+
" <td>2013-01-01 23:59:31+00:00</td>\n",
|
222 |
" <td>PaytonAdams</td>\n",
|
223 |
" <td>15sn6m</td>\n",
|
224 |
" <td>0</td>\n",
|
225 |
" <td>5</td>\n",
|
226 |
+
" <td>2013-01-01</td>\n",
|
227 |
+
" <td>23:59:31</td>\n",
|
228 |
" </tr>\n",
|
229 |
" <tr>\n",
|
230 |
" <th>2</th>\n",
|
|
|
234 |
" <td>/r/AskReddit/comments/15sn6b/what_movies_have_...</td>\n",
|
235 |
" <td></td>\n",
|
236 |
" <td>http://www.reddit.com/r/AskReddit/comments/15s...</td>\n",
|
237 |
+
" <td>2013-01-01 23:59:20+00:00</td>\n",
|
238 |
" <td>[deleted]</td>\n",
|
239 |
" <td>15sn6b</td>\n",
|
240 |
" <td>0</td>\n",
|
241 |
" <td>1</td>\n",
|
242 |
+
" <td>2013-01-01</td>\n",
|
243 |
+
" <td>23:59:20</td>\n",
|
244 |
" </tr>\n",
|
245 |
" <tr>\n",
|
246 |
" <th>3</th>\n",
|
|
|
250 |
" <td>/r/AskReddit/comments/15sn4u/worst_fears/</td>\n",
|
251 |
" <td>So what is your worst fear, reddit?</td>\n",
|
252 |
" <td>http://www.reddit.com/r/AskReddit/comments/15s...</td>\n",
|
253 |
+
" <td>2013-01-01 23:58:37+00:00</td>\n",
|
254 |
" <td>[deleted]</td>\n",
|
255 |
" <td>15sn4u</td>\n",
|
256 |
" <td>0</td>\n",
|
257 |
" <td>0</td>\n",
|
258 |
+
" <td>2013-01-01</td>\n",
|
259 |
+
" <td>23:58:37</td>\n",
|
260 |
" </tr>\n",
|
261 |
" <tr>\n",
|
262 |
" <th>4</th>\n",
|
|
|
266 |
" <td>/r/AskReddit/comments/15sn44/if_there_was_a_ty...</td>\n",
|
267 |
" <td></td>\n",
|
268 |
" <td>http://www.reddit.com/r/AskReddit/comments/15s...</td>\n",
|
269 |
+
" <td>2013-01-01 23:58:15+00:00</td>\n",
|
270 |
" <td>Honeybeard</td>\n",
|
271 |
" <td>15sn44</td>\n",
|
272 |
" <td>0</td>\n",
|
273 |
" <td>11</td>\n",
|
274 |
+
" <td>2013-01-01</td>\n",
|
275 |
+
" <td>23:58:15</td>\n",
|
276 |
" </tr>\n",
|
277 |
" <tr>\n",
|
278 |
" <th>...</th>\n",
|
|
|
287 |
" <td>...</td>\n",
|
288 |
" <td>...</td>\n",
|
289 |
" <td>...</td>\n",
|
290 |
+
" <td>...</td>\n",
|
291 |
+
" <td>...</td>\n",
|
292 |
" </tr>\n",
|
293 |
" <tr>\n",
|
294 |
+
" <th>3267</th>\n",
|
295 |
+
" <td>0</td>\n",
|
296 |
+
" <td>11</td>\n",
|
297 |
+
" <td>Smokers of Reddit- What are your reasons for s...</td>\n",
|
298 |
+
" <td>/r/AskReddit/comments/15qzen/smokers_of_reddit...</td>\n",
|
299 |
+
" <td>I'm very curious as to what causes someone to ...</td>\n",
|
300 |
+
" <td>http://www.reddit.com/r/AskReddit/comments/15q...</td>\n",
|
301 |
+
" <td>2013-01-01 00:01:36+00:00</td>\n",
|
302 |
+
" <td>kelsofb</td>\n",
|
303 |
+
" <td>15qzen</td>\n",
|
304 |
+
" <td>0</td>\n",
|
305 |
+
" <td>0</td>\n",
|
306 |
+
" <td>2013-01-01</td>\n",
|
307 |
+
" <td>00:01:36</td>\n",
|
308 |
+
" </tr>\n",
|
309 |
+
" <tr>\n",
|
310 |
+
" <th>3268</th>\n",
|
311 |
" <td>1</td>\n",
|
312 |
+
" <td>4</td>\n",
|
313 |
+
" <td>Hi</td>\n",
|
314 |
+
" <td>/r/AskReddit/comments/15qzei/hi/</td>\n",
|
315 |
" <td></td>\n",
|
316 |
+
" <td>http://www.reddit.com/r/AskReddit/comments/15q...</td>\n",
|
317 |
+
" <td>2013-01-01 00:01:34+00:00</td>\n",
|
318 |
+
" <td>ImJE5US</td>\n",
|
319 |
+
" <td>15qzei</td>\n",
|
320 |
" <td>0</td>\n",
|
321 |
" <td>1</td>\n",
|
322 |
+
" <td>2013-01-01</td>\n",
|
323 |
+
" <td>00:01:34</td>\n",
|
324 |
" </tr>\n",
|
325 |
" <tr>\n",
|
326 |
+
" <th>3269</th>\n",
|
327 |
+
" <td>1</td>\n",
|
328 |
" <td>2</td>\n",
|
329 |
+
" <td>At the stroke of midnight I was writing this p...</td>\n",
|
330 |
+
" <td>/r/AskReddit/comments/15qzdx/at_the_stroke_of_...</td>\n",
|
|
|
331 |
" <td></td>\n",
|
332 |
+
" <td>http://www.reddit.com/r/AskReddit/comments/15q...</td>\n",
|
333 |
+
" <td>2013-01-01 00:01:15+00:00</td>\n",
|
334 |
+
" <td>Sangfroid_Sonder</td>\n",
|
335 |
+
" <td>15qzdx</td>\n",
|
336 |
" <td>0</td>\n",
|
337 |
+
" <td>1</td>\n",
|
338 |
+
" <td>2013-01-01</td>\n",
|
339 |
+
" <td>00:01:15</td>\n",
|
340 |
" </tr>\n",
|
341 |
" <tr>\n",
|
342 |
+
" <th>3270</th>\n",
|
343 |
+
" <td>1</td>\n",
|
344 |
+
" <td>2</td>\n",
|
345 |
+
" <td>With all the rape stories in the news, why don...</td>\n",
|
346 |
+
" <td>/r/AskReddit/comments/15qzdc/with_all_the_rape...</td>\n",
|
347 |
" <td></td>\n",
|
348 |
+
" <td>http://www.reddit.com/r/AskReddit/comments/15q...</td>\n",
|
349 |
+
" <td>2013-01-01 00:00:58+00:00</td>\n",
|
350 |
+
" <td>[deleted]</td>\n",
|
351 |
+
" <td>15qzdc</td>\n",
|
|
|
352 |
" <td>0</td>\n",
|
353 |
+
" <td>1</td>\n",
|
354 |
+
" <td>2013-01-01</td>\n",
|
355 |
+
" <td>00:00:58</td>\n",
|
356 |
" </tr>\n",
|
357 |
" <tr>\n",
|
358 |
+
" <th>3271</th>\n",
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
359 |
" <td>0</td>\n",
|
360 |
+
" <td>3</td>\n",
|
361 |
+
" <td>Do beautiful people have low entropy?</td>\n",
|
362 |
+
" <td>/r/AskReddit/comments/15qzd3/do_beautiful_peop...</td>\n",
|
363 |
+
" <td>I have been reading about entropy and arrows o...</td>\n",
|
364 |
+
" <td>http://www.reddit.com/r/AskReddit/comments/15q...</td>\n",
|
365 |
+
" <td>2013-01-01 00:00:53+00:00</td>\n",
|
366 |
+
" <td>[deleted]</td>\n",
|
367 |
+
" <td>15qzd3</td>\n",
|
|
|
|
|
|
|
|
|
|
|
368 |
" <td>0</td>\n",
|
369 |
+
" <td>0</td>\n",
|
370 |
+
" <td>2013-01-01</td>\n",
|
371 |
+
" <td>00:00:53</td>\n",
|
372 |
" </tr>\n",
|
373 |
" </tbody>\n",
|
374 |
"</table>\n",
|
375 |
+
"<p>3272 rows × 13 columns</p>\n",
|
376 |
"</div>"
|
377 |
],
|
378 |
"text/plain": [
|
379 |
+
" score num_comments title \\\n",
|
380 |
+
"0 2 4 Reddit, if someone had to describe you to a st... \n",
|
381 |
+
"1 5 24 What kind of car does the average \\nRedditor d... \n",
|
382 |
+
"2 1 5 What movies have made you go back to the theat... \n",
|
383 |
+
"3 0 18 Worst fear(s)? \n",
|
384 |
+
"4 11 29 If there was a type of ink that lasted only fo... \n",
|
385 |
+
"... ... ... ... \n",
|
386 |
+
"3267 0 11 Smokers of Reddit- What are your reasons for s... \n",
|
387 |
+
"3268 1 4 Hi \n",
|
388 |
+
"3269 1 2 At the stroke of midnight I was writing this p... \n",
|
389 |
+
"3270 1 2 With all the rape stories in the news, why don... \n",
|
390 |
+
"3271 0 3 Do beautiful people have low entropy? \n",
|
391 |
"\n",
|
392 |
+
" permalink \\\n",
|
393 |
+
"0 /r/AskReddit/comments/15sn6y/reddit_if_someone... \n",
|
394 |
+
"1 /r/AskReddit/comments/15sn6m/what_kind_of_car_... \n",
|
395 |
+
"2 /r/AskReddit/comments/15sn6b/what_movies_have_... \n",
|
396 |
+
"3 /r/AskReddit/comments/15sn4u/worst_fears/ \n",
|
397 |
+
"4 /r/AskReddit/comments/15sn44/if_there_was_a_ty... \n",
|
398 |
+
"... ... \n",
|
399 |
+
"3267 /r/AskReddit/comments/15qzen/smokers_of_reddit... \n",
|
400 |
+
"3268 /r/AskReddit/comments/15qzei/hi/ \n",
|
401 |
+
"3269 /r/AskReddit/comments/15qzdx/at_the_stroke_of_... \n",
|
402 |
+
"3270 /r/AskReddit/comments/15qzdc/with_all_the_rape... \n",
|
403 |
+
"3271 /r/AskReddit/comments/15qzd3/do_beautiful_peop... \n",
|
404 |
"\n",
|
405 |
+
" selftext \\\n",
|
406 |
+
"0 They would be talking about you without your p... \n",
|
407 |
+
"1 I've always wanted to know what kind of car th... \n",
|
408 |
+
"2 \n",
|
409 |
+
"3 So what is your worst fear, reddit? \n",
|
410 |
+
"4 \n",
|
411 |
+
"... ... \n",
|
412 |
+
"3267 I'm very curious as to what causes someone to ... \n",
|
413 |
+
"3268 \n",
|
414 |
+
"3269 \n",
|
415 |
+
"3270 \n",
|
416 |
+
"3271 I have been reading about entropy and arrows o... \n",
|
417 |
"\n",
|
418 |
+
" url \\\n",
|
419 |
+
"0 http://www.reddit.com/r/AskReddit/comments/15s... \n",
|
420 |
+
"1 http://www.reddit.com/r/AskReddit/comments/15s... \n",
|
421 |
+
"2 http://www.reddit.com/r/AskReddit/comments/15s... \n",
|
422 |
+
"3 http://www.reddit.com/r/AskReddit/comments/15s... \n",
|
423 |
+
"4 http://www.reddit.com/r/AskReddit/comments/15s... \n",
|
424 |
+
"... ... \n",
|
425 |
+
"3267 http://www.reddit.com/r/AskReddit/comments/15q... \n",
|
426 |
+
"3268 http://www.reddit.com/r/AskReddit/comments/15q... \n",
|
427 |
+
"3269 http://www.reddit.com/r/AskReddit/comments/15q... \n",
|
428 |
+
"3270 http://www.reddit.com/r/AskReddit/comments/15q... \n",
|
429 |
+
"3271 http://www.reddit.com/r/AskReddit/comments/15q... \n",
|
430 |
"\n",
|
431 |
+
" created_utc author id downs ups \\\n",
|
432 |
+
"0 2013-01-01 23:59:40+00:00 [deleted] 15sn6y 0 2 \n",
|
433 |
+
"1 2013-01-01 23:59:31+00:00 PaytonAdams 15sn6m 0 5 \n",
|
434 |
+
"2 2013-01-01 23:59:20+00:00 [deleted] 15sn6b 0 1 \n",
|
435 |
+
"3 2013-01-01 23:58:37+00:00 [deleted] 15sn4u 0 0 \n",
|
436 |
+
"4 2013-01-01 23:58:15+00:00 Honeybeard 15sn44 0 11 \n",
|
437 |
+
"... ... ... ... ... ... \n",
|
438 |
+
"3267 2013-01-01 00:01:36+00:00 kelsofb 15qzen 0 0 \n",
|
439 |
+
"3268 2013-01-01 00:01:34+00:00 ImJE5US 15qzei 0 1 \n",
|
440 |
+
"3269 2013-01-01 00:01:15+00:00 Sangfroid_Sonder 15qzdx 0 1 \n",
|
441 |
+
"3270 2013-01-01 00:00:58+00:00 [deleted] 15qzdc 0 1 \n",
|
442 |
+
"3271 2013-01-01 00:00:53+00:00 [deleted] 15qzd3 0 0 \n",
|
443 |
"\n",
|
444 |
+
" date time \n",
|
445 |
+
"0 2013-01-01 23:59:40 \n",
|
446 |
+
"1 2013-01-01 23:59:31 \n",
|
447 |
+
"2 2013-01-01 23:59:20 \n",
|
448 |
+
"3 2013-01-01 23:58:37 \n",
|
449 |
+
"4 2013-01-01 23:58:15 \n",
|
450 |
+
"... ... ... \n",
|
451 |
+
"3267 2013-01-01 00:01:36 \n",
|
452 |
+
"3268 2013-01-01 00:01:34 \n",
|
453 |
+
"3269 2013-01-01 00:01:15 \n",
|
454 |
+
"3270 2013-01-01 00:00:58 \n",
|
455 |
+
"3271 2013-01-01 00:00:53 \n",
|
456 |
"\n",
|
457 |
+
"[3272 rows x 13 columns]"
|
458 |
]
|
459 |
},
|
460 |
+
"execution_count": 29,
|
461 |
"metadata": {},
|
462 |
"output_type": "execute_result"
|
463 |
}
|
|
|
470 |
{
|
471 |
"cell_type": "code",
|
472 |
"execution_count": 16,
|
473 |
+
"id": "28df4b06",
|
474 |
"metadata": {},
|
475 |
"outputs": [
|
476 |
{
|
|
|
502 |
{
|
503 |
"cell_type": "code",
|
504 |
"execution_count": 18,
|
505 |
+
"id": "e322b6c0",
|
506 |
"metadata": {},
|
507 |
"outputs": [],
|
508 |
"source": [
|
|
|
512 |
{
|
513 |
"cell_type": "code",
|
514 |
"execution_count": 21,
|
515 |
+
"id": "ed1b06c3",
|
516 |
"metadata": {},
|
517 |
"outputs": [],
|
518 |
"source": [
|
|
|
523 |
},
|
524 |
{
|
525 |
"cell_type": "code",
|
526 |
+
"execution_count": 33,
|
527 |
+
"id": "ff477737",
|
528 |
+
"metadata": {},
|
529 |
+
"outputs": [
|
530 |
+
{
|
531 |
+
"data": {
|
532 |
+
"text/plain": [
|
533 |
+
"2013-01-01 3272\n",
|
534 |
+
"Name: date, dtype: int64"
|
535 |
+
]
|
536 |
+
},
|
537 |
+
"execution_count": 33,
|
538 |
+
"metadata": {},
|
539 |
+
"output_type": "execute_result"
|
540 |
+
}
|
541 |
+
],
|
542 |
+
"source": [
|
543 |
+
"df.date.value_counts()"
|
544 |
+
]
|
545 |
+
},
|
546 |
+
{
|
547 |
+
"cell_type": "code",
|
548 |
+
"execution_count": 26,
|
549 |
+
"id": "1d11b967",
|
550 |
+
"metadata": {},
|
551 |
+
"outputs": [],
|
552 |
+
"source": [
|
553 |
+
"new_df = df.drop_duplicates(subset=['id'], keep=\"first\")"
|
554 |
+
]
|
555 |
+
},
|
556 |
+
{
|
557 |
+
"cell_type": "code",
|
558 |
+
"execution_count": 27,
|
559 |
+
"id": "eec00dd6",
|
560 |
"metadata": {},
|
561 |
"outputs": [
|
562 |
{
|
|
|
565 |
"<Axes: >"
|
566 |
]
|
567 |
},
|
568 |
+
"execution_count": 27,
|
569 |
"metadata": {},
|
570 |
"output_type": "execute_result"
|
571 |
},
|
572 |
{
|
573 |
"data": {
|
574 |
+
"image/png": "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/Xo9+uijeuGFF3To0CGfvrp27ar58+dr1qxZSktLU3Jysp599lln/cGDB3XppZfq4MGD6tOnjyIjI/XCCy/oxhtvdNo888wzmj9/voqLi2vNm5WVpfnz59dYnp2drfbt2zd1GAAAQAs6deqUpk6dqpKSEsXGxgY7jsPqlapQN3fuXJ+rW6WlpUpKSlJaWprVB8Xj8Sg3N1fXXXedIiIirPUbaG7NLbk7u0T+YAp29n5Zr+mDrPQm39/f/P2yXpOkZm2ztj797a+p497c8fJHXdsasiBHDw2tdOV8l/wb+7rGoPryQMyrung8Hr3yyisB305TWC2qEhISJEnFxcU+V6qKi4s1aNAgp82xY8d87nfmzBkdP37cuX9CQkKNq03e3xtq411fm6ioKEVFRdVYHhEREZADI1D9Bppbc0vuzi6RP5iClb38bJiV7daWv+f9W2u8d6r8bJjT3pbm7IO/425rvJqzrfLKf4+hW+e71Lj8dY5BteWBmFduZPV7qpKTk5WQkKAdO3Y4y0pLS7V7926lpKRIklJSUnTixAkVFBQ4bXbu3KnKykoNGzbMaZOXl+fzumlubq4uueQSde7c2WlTdTveNt7tAAAAtCS/i6qTJ0+qsLBQhYWFkr55c3phYaGOHDmisLAwzZkzRw8//LA2b96s999/XzfffLMSExOd91316dNH119/vWbMmKE9e/bo7bff1uzZszVlyhQlJiZKkqZOnarIyEhNnz5dBw4c0Pr16/XUU0/5vHR35513KicnR0888YQ++ugjZWVlad++fZo9e3bzRwUBwzfuAqhNU88NbjinuCGjTW1tf6vyu6jat2+fBg8erMGDB0uSMjMzNXjwYM2bN0+SdO+99+qOO+7QzJkzdfnll+vkyZPKyclRdHS008e6devUu3dvjRo1SmPGjNFVV13l8x1UcXFx2r59uw4fPqwhQ4bo7rvv1rx583y+y+rKK69Udna2Vq1apYEDB+rPf/6zNm3apH79+jV5MACgLs19omjLTzRAW+H3e6quueYa1feBwbCwMC1YsEALFiyos02XLl2UnZ1d73YGDBigN998s942kyZN0qRJk+oPDAAhpLb3OQV7u8HKBLQ2/O0/AECbF4g/CMzVybaHogoAAMACiioAaGW4QhLaAnFVDKGBogohg5MM3Ka1Pzm25n0DAoGiCkHByRpAa9Gazmf+7ktr2ncbKKoAAAAsoKgCAIQkroLAbSiqAAAALKCoAgA0CleO3IXHq+VRVAEAWlQoPNmHQobqassUijlRN4oqAAAACyiqENJa+/cAAQBaD4oqAAhB/GeiZTDOsImiCgAAwAKKKuD/8FIjYB/HlDvwONlBURVCmNQAALgXRRUAVMN/cAA0BUUVAIQQCjrAvSiqAABWURhCapvzgKIKVrTFgwcAgoHzbeiiqELQcYIAALQGFFXwCwUQYAfHEmxiPoUGiiq4DicPAI3F+QItiaIKACziSbx2jEtwMf4tg6IK9eJAdBceLwAIHooqAAAACyiqAABAg7gS3jCKKgCAX/jj40DtKKrQZrnpScFNWQGgraKoQqvVmguRxu4bVxRQH+YGYBdFVRD484SI4ONxAAA0BkUVAAAtgP+gtX4UVQAAABZQVAFNwP84EWr6Zb0W7AghjfcXoiVQVLUCnCgAAAg+iiqgDWsrBXlr28/Wtj9Aa0FRhZDEkwYAwG0oqhAQvH+h9eHxBID6UVQBAABYQFHVSnFVAWgcPjUHwBaKKgCtBv+ZgBdzAcFAUeVCnCxaDx5LNBdX2oDQQVGFNodCpn6MD1qSm4tCN2dHYFBUAS2MT0YCCHWco5qGogoO/tcFwO2CXQzwn6a2jaKqBXGghSYeF/fisUMgMK/QVBRVAOACbeUKSGP3sS2MBdyHogoAgAZQxKExKKqANsLNTwq2srt5DACEPutF1dmzZ/Wb3/xGycnJiomJ0be//W099NBDMsY4bYwxmjdvnrp3766YmBilpqbq448/9unn+PHjmjZtmmJjYxUfH6/p06fr5MmTPm3ee+89XX311YqOjlZSUpIWL15se3cAK3gyBxAKOBcFlvWiatGiRfrd736n5cuX68MPP9SiRYu0ePFiLVu2zGmzePFiPf3001q5cqV2796tDh06KD09XadPn3baTJs2TQcOHFBubq62bNmivLw8zZw501lfWlqqtLQ0XXTRRSooKNBjjz2mrKwsrVq1yvYutUr1HVj9sl7jwAMAwE/Wi6pdu3Zp3LhxGjt2rHr27Kkf/ehHSktL0549eyR9c5Vq6dKleuCBBzRu3DgNGDBAa9eu1dGjR7Vp0yZJ0ocffqicnBw999xzGjZsmK666iotW7ZML730ko4ePSpJWrdunSoqKrR69WpdeumlmjJlin7xi19oyZIltncJaJS2Voi2xv1tzj61hvFoDfsABNM5tju88sortWrVKv3tb39Tr1699Ne//lVvvfWWU+wcPnxYRUVFSk1Nde4TFxenYcOGKT8/X1OmTFF+fr7i4+M1dOhQp01qaqrCw8O1e/duTZgwQfn5+Ro5cqQiIyOdNunp6Vq0aJG++uorde7cuUa28vJylZeXO7+XlpZKkjwejzwej7Ux8PZVvc+odkYej8f52S/rNX2QlV5jfV2/+9OurvvWe59w4/OzatamZPL2UVu7qu0bWla9n9oy1DbmDY1zbT/ry9yUZbWtq7od7/K65kxdfTflcWjuftSXoaH8zdWcY6Hq8vrmfW1zoqEMtY1vYzPU1b6+5dW3VTV/VLj/x1Rjs9SWzdtHQ49DfVmq5m6oXUPj2Jhxri1zY8altsy1ZW9oTgTyXNPQstr2qbHjVusY+Dl+NgXqPGNDmKn6ZicLKisr9atf/UqLFy9Wu3btdPbsWT3yyCOaO3eupG+uZI0YMUJHjx5V9+7dnftNnjxZYWFhWr9+vR599FG98MILOnTokE/fXbt21fz58zVr1iylpaUpOTlZzz77rLP+4MGDuvTSS3Xw4EH16dOnRrasrCzNnz+/xvLs7Gy1b9/e1hAAAIAAOnXqlKZOnaqSkhLFxsYGO86/Gcv++Mc/mgsvvND88Y9/NO+9955Zu3at6dKli1mzZo0xxpi3337bSDJHjx71ud+kSZPM5MmTjTHGPPLII6ZXr141+j7//PPNM888Y4wx5rrrrjMzZ870WX/gwAEjyRw8eLDWbKdPnzYlJSXO7fPPPzeSzJdffmkqKiqs3crKysymTZtMWVmZz/Jev3q11p/V19f1uz/tGlpW2/r+D2w2mzZtMv0f2NzojPVlqi9DbVnqWtaYDLWNeUP7UNvPpoxlQ2NT275V33Zdc8bG3KhrHPzdj/oyNJS/ubfmHAv1zYWKin/P+7KysiaNVUPHdWPmnb/zs+p9qh639e1vff0091ip73GoK4t3znhz15e5MZmamrkx49LQmDd0fAfqXOPP8V21XWPOlw2Ngb/jZ/NWVlZmsrOzjSRTUlLS7LrFJusv/91zzz26//77NWXKFElS//799dlnn2nhwoW65ZZblJCQIEkqLi72uVJVXFysQYMGSZISEhJ07Ngxn37PnDmj48ePO/dPSEhQcXGxTxvv79421UVFRSkqKqrG8oiICEVERDRhb+tXvd/ys2GKiIio8bP6+rp+96ddQ8tqXV8Z5vxsbMb6MnnHoLZ2tWWpa1n1furK4G1XX7+1La9vW3WOVSOX1bau6naq36euuWjjcWjufjQmQ6COpeZkqrq8vnlf37FZV9+1jW9jMzRnfvrMpyrHrb/HlI0sDT0O9WWpmruhdg1lamrmxoxLbZlry97QnLB9rvHn+K5tn+o7XzY4Bn6OX1th/Y3qp06dUni4b7ft2rVTZWWlJCk5OVkJCQnasWOHs760tFS7d+9WSkqKJCklJUUnTpxQQUGB02bnzp2qrKzUsGHDnDZ5eXk+r63m5ubqkksuqfX9VG7Cm0UB92uLx3Fb3GegKutF1Q033KBHHnlEW7du1d///ndt3LhRS5Ys0YQJEyRJYWFhmjNnjh5++GFt3rxZ77//vm6++WYlJiZq/PjxkqQ+ffro+uuv14wZM7Rnzx69/fbbmj17tqZMmaLExERJ0tSpUxUZGanp06frwIEDWr9+vZ566illZmba3iW4DCd29+MxBOBG1l/+W7ZsmX7zm9/o5z//uY4dO6bExET97Gc/07x585w29957r8rKyjRz5kydOHFCV111lXJychQdHe20WbdunWbPnq1Ro0YpPDxcEydO1NNPP+2sj4uL0/bt25WRkaEhQ4bovPPO07x583y+ywpA6PAWSn//7dggJ2m+nvdvbRX7AcAu60VVp06dtHTpUi1durTONmFhYVqwYIEWLFhQZ5suXbooOzu73m0NGDBAb775ZlOjAgHHky9jADuYR3AD/vYfAACABRRVAAAAFlBUAQAAWEBRBYSAflmvNfm+tX1Sjk/PAUDLo6gCAACwgKIKLcLGlROuvgAAQhlFFQDUg2IegcYcaz0oqgAACCEUWe5FUQXUgRMbAMAfFFUAgioYxSsFM4BAoKiCVW3tycr2/jbnqxUAAMFFUQVAUtsriAG34RgNfRRVAdbz/q2t+kBozfvWWvGYAUBgUFQBAABYQFEFAABgAUVVK9KUlxp5KQg28UZ7AG0ZRRUAAIAFFFVAI7X2Dx0AAJqHogpAi6M4BdAaUVQBAABYQFEFICRw9QqA21FUAWi1KNQAtCSKKrgaT5oAgFBBUYVGoXgBAKB+FFVAAFCEMgYA2h6KKgAAAAsoqtoArhgAABB4FFUAmoWiHQC+QVEFuAgFDACELooqAAAACyiqXICrEwAAhD6KKgAAAAsoqlyMK1itV8/7twb98Q329v3hpqwAWi+KKgAAAAsoqgAAACygqAIAALCAogoAAMACiioAIYs3oANwE4oqAAAACyiqAAAALKCoAgAAsICiCoBfeJ8TANSOogoAAMACiioAAAALKKoAuEoo/F1EAKgNRRUAAIAFFFUAAAAWUFQBAABYQFEFAABgQUCKqn/84x+66aabdO655yomJkb9+/fXvn37nPXGGM2bN0/du3dXTEyMUlNT9fHHH/v0cfz4cU2bNk2xsbGKj4/X9OnTdfLkSZ827733nq6++mpFR0crKSlJixcvDsTuAAAANMh6UfXVV19pxIgRioiI0H//93/r4MGDeuKJJ9S5c2enzeLFi/X0009r5cqV2r17tzp06KD09HSdPn3aaTNt2jQdOHBAubm52rJli/Ly8jRz5kxnfWlpqdLS0nTRRRepoKBAjz32mLKysrRq1SrbuwQAANCgc2x3uGjRIiUlJen55593liUnJzv/NsZo6dKleuCBBzRu3DhJ0tq1a9WtWzdt2rRJU6ZM0YcffqicnBzt3btXQ4cOlSQtW7ZMY8aM0eOPP67ExEStW7dOFRUVWr16tSIjI3XppZeqsLBQS5Ys8Sm+AAAAWoL1omrz5s1KT0/XpEmT9MYbb+iCCy7Qz3/+c82YMUOSdPjwYRUVFSk1NdW5T1xcnIYNG6b8/HxNmTJF+fn5io+PdwoqSUpNTVV4eLh2796tCRMmKD8/XyNHjlRkZKTTJj09XYsWLdJXX33lc2XMq7y8XOXl5c7vpaWlkiSPxyOPx2NtDLx9eTweRbUzPv+u7adXXev9aVd9W7W1r3NZuPH5aStLfe0ak6+uLFXbVR/zQGVuTJbG7G+NfqqMfVPHL5CZGzs/vfkbm6Wx87PB8Wtm5saMkb/zs8WO72pzp6Uy+zs/65x34Q3f1/b4NXZ+1pe5tuyNnZ+BPL6rauhx8PtYaca5xqZA9GlLmDHG2OwwOjpakpSZmalJkyZp7969uvPOO7Vy5Urdcsst2rVrl0aMGKGjR4+qe/fuzv0mT56ssLAwrV+/Xo8++qheeOEFHTp0yKfvrl27av78+Zo1a5bS0tKUnJysZ5991ll/8OBBXXrppTp48KD69OlTI1tWVpbmz59fY3l2drbat29vawgAAEAAnTp1SlOnTlVJSYliY2ODHeffjGUREREmJSXFZ9kdd9xhhg8fbowx5u233zaSzNGjR33aTJo0yUyePNkYY8wjjzxievXqVaPv888/3zzzzDPGGGOuu+46M3PmTJ/1Bw4cMJLMwYMHa812+vRpU1JS4tw+//xzI8l8+eWXpqKiwtqtrKzMbNq0yZSVlZlev3rV9PrVq6aioqLOn96bjXa13aexy/o/sNls2rTJ9H9gs9UsDfXT0LLG3Lf6mAcqc2OyNGZ/qy+vOvZNHb9AZm5o3Lzj781ve342NH7NOaa8Y1/b3GnO/Gyp47v63GmpzM09vqvPmabOz2Ac37Udr/7Mz0Ae37WNRV3Ha1lZmV/j25zxs3krKysz2dnZRpIpKSlpWrESINZf/uvevbv69u3rs6xPnz76r//6L0lSQkKCJKm4uNjnSlVxcbEGDRrktDl27JhPH2fOnNHx48ed+yckJKi4uNinjfd3b5vqoqKiFBUVVWN5RESEIiIiGruLjRYREaHys2E+/67tp1dd6/1pV31btbWvc1llmPPTZpb62jUmX13jV7Vd9TEPVObGZmlof2v0U2Xsmzp+gczc2Pnpzd/YLI2dnw2OXzMzN2aM/J2fLXZ8V5s7LZXZ3/lZ57yrbPi+tsevsfOzvsy1ZW/s/Azk8V1VQ49DREREgxlsnWvaCuuf/hsxYkSNl+3+9re/6aKLLpL0zZvWExIStGPHDmd9aWmpdu/erZSUFElSSkqKTpw4oYKCAqfNzp07VVlZqWHDhjlt8vLyfF5bzc3N1SWXXFLr+6kAAAACyXpRddddd+mdd97Ro48+qk8++UTZ2dlatWqVMjIyJElhYWGaM2eOHn74YW3evFnvv/++br75ZiUmJmr8+PGSvrmydf3112vGjBnas2eP3n77bc2ePVtTpkxRYmKiJGnq1KmKjIzU9OnTdeDAAa1fv15PPfWUMjMzbe8SAABAg6y//Hf55Zdr48aNmjt3rhYsWKDk5GQtXbpU06ZNc9rce++9Kisr08yZM3XixAldddVVysnJcd7kLknr1q3T7NmzNWrUKIWHh2vixIl6+umnnfVxcXHavn27MjIyNGTIEJ133nmaN28eX6cAAACCwnpRJUnf//739f3vf7/O9WFhYVqwYIEWLFhQZ5suXbooOzu73u0MGDBAb775ZpNzAgAA2MLf/gMAALCAogoAAMACiioAAAALKKoAAAAsoKgCAACwgKIKAADAAooqAABaiZ73bw12hDaNogoAAMACiioAAAALKKoAAECj8RJj3SiqAAAALKCoAgAAsICiCgAAwAKKKgAAAAsoqgCghQT7Db7B3j7Q2lFUAQAAWEBRBQAAYAFFFQAA8BsvJ9dEUQUAAGABRRUABAn/0wdaF4oqAAgxNootCjag5VFUAQBCSlMLQgpJBNs5wQ4AAABClz/FalsvbLlSBQBoUxrzxN/WiwM0DUUVAMAVAlXo1NcvxRX8QVEFAG1YWysaWnp/29r4tnUUVQgJnHjgBnXNU+avHW4ex8Zmd8M+ejO6IWuo4Y3qAADrRUFt7Xrev1V//+1Yv3I1pu+WevL3bieqXYtsDi7ElSoAAAALuFIFAEHmvQJi4ypOc/GST9vFY998XKkCgCbgCcgX48EYgCtVaAV63r9VUe2MFl8R7CQAGhLqhUeo5AuVHPAPV6oAwA+h9GQXSllsa837htaLogquxAkXgdbz/q3MM7QYG19AWtcnLpnHLYeiCiElWAc/Jx2gdhwbjAEaj6IqyFr7wdra988teBwQKMwt4N94o3oI4KRkT7+s1ySFNdiuNY95a963YGFMEWqYk6GJK1UAAKDJKPD+jaIKABBUPCmjteDlPzRboE6InGjr/1tpjE/o4rGxh7H0xXiENq5UoU7+Hrwt8Vfa2+IJpS3uM0IP87BlhPo4h3q+YKOochl/JnRLFDmhrrn7ZuO7YxCa6vr+nlB6XL1ZQikTgLpRVLUxbngiQcvgMQeCi2Ow9aGoQoM48NFcLTmHmK8AgoWiCkCbQLGFlsR8a5soquA3/paUf+oaq2COIY9f28LjDbQMvlIhRIXiSTAUMwFtVSi8N5JzAuCLK1UB9M2fTGkZbfHkxh9fBhrGfG0deBzdgStVLYwDA27DnAWAxgn4larf/va3CgsL05w5c5xlp0+fVkZGhs4991x17NhREydOVHFxsc/9jhw5orFjx6p9+/bq2rWr7rnnHp05c8anzeuvv67LLrtMUVFRuvjii7VmzZpA7w7agOZ+OWlbuoJGwQWgNm313BDQomrv3r169tlnNWDAAJ/ld911l1599VVt2LBBb7zxho4ePaof/vCHzvqzZ89q7Nixqqio0K5du/TCCy9ozZo1mjdvntPm8OHDGjt2rK699loVFhZqzpw5uu222/Taay33kpsbtNWJ3Rq1xGPZWuYLH6aA1HrmM9wjYEXVyZMnNW3aNP3nf/6nOnfu7CwvKSnR73//ey1ZskTf+973NGTIED3//PPatWuX3nnnHUnS9u3bdfDgQb344osaNGiQRo8erYceekgrVqxQRUWFJGnlypVKTk7WE088oT59+mj27Nn60Y9+pCeffDJQuwQgiHiCRGMxV+ofg5Z8v29bE7D3VGVkZGjs2LFKTU3Vww8/7CwvKCiQx+NRamqqs6x3797q0aOH8vPzNXz4cOXn56t///7q1q2b0yY9PV2zZs3SgQMHNHjwYOXn5/v04W1T9WXG6srLy1VeXu78XlpaKknyeDzyeDzN3WWHt6+ocOOzLKpd3b831M7p8//WVV1evZ+mLvPmrZq7of30dx+qL6+6T/7mr6p69rq2VX17/u5DbRq7H/W2q5K/oX21+ZjXlau+x6zexzLcd67Wl6G2dnUtqz7vJemSX29RVLv6j4Xa9rmued/QuDdGbdvyPoFFtau7XUPL62vj73Hrz7aawu9552fuhvr1p11Tx8Cf4zVQGerro6FtVZ3zXoGYC9W3Ecp92hJmjLE+ki+99JIeeeQR7d27V9HR0brmmms0aNAgLV26VNnZ2br11lt9ihtJuuKKK3Tttddq0aJFmjlzpj777DOfl/JOnTqlDh06aNu2bRo9erR69eqlW2+9VXPnznXabNu2TWPHjtWpU6cUExNTI1dWVpbmz59fY3l2drbat29vcQQAAECgnDp1SlOnTlVJSYliY2ODHcdh/UrV559/rjvvvFO5ubmKjo623X2zzJ07V5mZmc7vpaWlSkpKUlpamtUHxePxKDc3V7/ZF67yyjBJ0gdZ6T6XXKv/XtfyhtrVtr6py6LCjR4aWumTuyn82Tep5qXoxuavqnr2urZVfXvNfRz87aP69r3LhyzIcfIXzLu+3n21+ZjXlauu+VXX8v2//p4z56vmry9D1e021K6x/TXmZY265v11112nwY/sbPD+/vTd2EzN0dTjtiWy1betqnOmOeebpm6/vuUNsXWubE6GpvTpXV51zkdEREgK3EuCVc+9tng8Hr3yyivW+7XBelFVUFCgY8eO6bLLLnOWnT17Vnl5eVq+fLlee+01VVRU6MSJE4qPj3faFBcXKyEhQZKUkJCgPXv2+PTr/XRg1TbVPzFYXFys2NjYWq9SSVJUVJSioqJqLI+IiHAmlk3llWEqPxvmbMP779p+r2t5Q+1qW9+cZdVzN4U/+yapWVmr82ava1vVt9fcx8HfPqpv32n3fyfm8sraH9OGttfcZdVzfec32yXVzFLXcqePavnry1B1uw21a2x/jZkjjX28msKfeWObv8dtS2ard94183zT1O1L/57PTWUjeyAeh8bO8cGP7NShR74vqeZ5yWaWtsT6G9VHjRql999/X4WFhc5t6NChmjZtmvPviIgI7dixw7nPoUOHdOTIEaWkpEiSUlJS9P777+vYsWNOm9zcXMXGxqpv375Om6p9eNt4+0DrEuw3ngZ7+21ZQ2Mfyo9NKGcDYJ/1K1WdOnVSv379fJZ16NBB5557rrN8+vTpyszMVJcuXRQbG6s77rhDKSkpGj58uCQpLS1Nffv21Y9//GMtXrxYRUVFeuCBB5SRkeFcabr99tu1fPly3XvvvfrpT3+qnTt36k9/+pO2bg3Nk1hTT65NuR8ncrgB87Tt4LFGWxGUb1R/8sknFR4erokTJ6q8vFzp6el65plnnPXt2rXTli1bNGvWLKWkpKhDhw665ZZbtGDBAqdNcnKytm7dqrvuuktPPfWULrzwQj333HNKT7f/+i0ANAbFA9C2tUhR9frrr/v8Hh0drRUrVmjFihV13ueiiy7Stm3b6u33mmuu0f79+21EdC1O4m0PjzlsYB4B9vEHlV2qNZ8QW/O+tQW2Hj/mAdA0HDvBQ1EVYlrzwdCa9w0AQh3n4MCjqAoSJjeAtow/lYLWiKIKrRJFKwCgpVFUAQAAWBCUr1RA68ZVotaDxxIIrGAfY8HefmvDlSqgmdriSakt7jMANIQrVWhTKAZqctOYuCkrQgfzBi2FogpB0xZPdG1xnwGgreDlPyDIAlVoUcABQMuiqEKbFoqFRyhmaqrWtC8A0BBe/kObEApP7oHMEAr7BwBtHVeqgACh0AGAtoWiqo3gCd4/jJd/QuFPjvCYAQg2iiqgDaHwqFsoFIYA3I2iCkCLorAD0FpRVAEAAFhAUQWgTeFKGYBAoagCAACwgKIKAADAAoqqNoyXQQAAsIeiCgAAwAKKKgBBx1VTAK0BRRUAAIAFFFUAAAAWUFQBAABYQFEFAABgAUUVAACABRRVAAAAFlBUAQAAWEBRBQAAYAFFFQAAgAUUVQAAABZQVAEAAFhAUQUAAGABRRUAAIAFFFUAAAAWUFQBAABYQFEFAABgAUUVAACABRRVAAAAFlBUAQAAWEBRBQAAYAFFFQAAgAUUVQAAABZQVAEAAFhAUQUAAGABRRUAAIAFFFUAAAAWWC+qFi5cqMsvv1ydOnVS165dNX78eB06dMinzenTp5WRkaFzzz1XHTt21MSJE1VcXOzT5siRIxo7dqzat2+vrl276p577tGZM2d82rz++uu67LLLFBUVpYsvvlhr1qyxvTsAAACNYr2oeuONN5SRkaF33nlHubm58ng8SktLU1lZmdPmrrvu0quvvqoNGzbojTfe0NGjR/XDH/7QWX/27FmNHTtWFRUV2rVrl1544QWtWbNG8+bNc9ocPnxYY8eO1bXXXqvCwkLNmTNHt912m1577TXbuwQAANCgc2x3mJOT4/P7mjVr1LVrVxUUFGjkyJEqKSnR73//e2VnZ+t73/ueJOn5559Xnz599M4772j48OHavn27Dh48qL/85S/q1q2bBg0apIceekj33XefsrKyFBkZqZUrVyo5OVlPPPGEJKlPnz5666239OSTTyo9Pd32bgEAANTLelFVXUlJiSSpS5cukqSCggJ5PB6lpqY6bXr37q0ePXooPz9fw4cPV35+vvr3769u3bo5bdLT0zVr1iwdOHBAgwcPVn5+vk8f3jZz5sypM0t5ebnKy8ud30tLSyVJHo9HHo+n2fvq5e0rKtxY67MlePO6Lbfk7uwS+YPJzdkl9+Z3a27J3dmlls1v87k1kH3aEtCiqrKyUnPmzNGIESPUr18/SVJRUZEiIyMVHx/v07Zbt24qKipy2lQtqLzrvevqa1NaWqp//etfiomJqZFn4cKFmj9/fo3l27dvV/v27Zu2k/V4aGil9T5bgltzS+7OLpE/mNycXXJvfrfmltydXWqZ/Nu2bQv4NkJJQIuqjIwMffDBB3rrrbcCuZlGmzt3rjIzM53fS0tLlZSUpLS0NMXGxlrbjsfjUW5urn6zL1zllWHW+g20qHCjh4ZWui635O7sEvmDyc3ZJffmd2tuyd3ZpZbN/0GW/bfjeDwevfLKK9b7tSFgRdXs2bO1ZcsW5eXl6cILL3SWJyQkqKKiQidOnPC5WlVcXKyEhASnzZ49e3z68346sGqb6p8YLC4uVmxsbK1XqSQpKipKUVFRNZZHREQoIiLC/51sQHllmMrPuu+Ac2tuyd3ZJfIHk5uzS+7N79bckruzSy2TPxDPraHM+qf/jDGaPXu2Nm7cqJ07dyo5Odln/ZAhQxQREaEdO3Y4yw4dOqQjR44oJSVFkpSSkqL3339fx44dc9rk5uYqNjZWffv2ddpU7cPbxtsHAABAS7J+pSojI0PZ2dl65ZVX1KlTJ+c9UHFxcYqJiVFcXJymT5+uzMxMdenSRbGxsbrjjjuUkpKi4cOHS5LS0tLUt29f/fjHP9bixYtVVFSkBx54QBkZGc6Vpttvv13Lly/Xvffeq5/+9KfauXOn/vSnP2nr1q22dwkAAKBB1q9U/e53v1NJSYmuueYade/e3bmtX7/eafPkk0/q+9//viZOnKiRI0cqISFBL7/8srO+Xbt22rJli9q1a6eUlBTddNNNuvnmm7VgwQKnTXJysrZu3arc3FwNHDhQTzzxhJ577jm+TgEAAASF9StVxjT8Ec3o6GitWLFCK1asqLPNRRdd1OCnBq655hrt37/f74wAAAC28bf/AAAALKCoAgAAsICiCgAAwAKKKgAAAAsoqgAAACygqAIAALCAogoAAMACiioAAAALKKoAAAAsoKgCAACwgKIKAADAAooqAAAACyiqAAAALKCoAgAAsICiCgAAwAKKKgAAAAsoqgAAACygqAIAALCAogoAAMACiioAAAALKKoAAAAsoKgCAACwgKIKAADAAooqAAAACyiqAAAALKCoAgAAsICiCgAAwAKKKgAAAAsoqgAAACygqAIAALCAogoAAMACiioAAAALKKoAAAAsoKgCAACwgKIKAADAAooqAAAACyiqAAAALKCoAgAAsICiCgAAwAKKKgAAAAsoqgAAACygqAIAALCAogoAAMACiioAAAALKKoAAAAsoKgCAACwgKIKAADAAooqAAAACyiqAAAALHB9UbVixQr17NlT0dHRGjZsmPbs2RPsSAAAoA1ydVG1fv16ZWZm6sEHH9S7776rgQMHKj09XceOHQt2NAAA0Ma4uqhasmSJZsyYoVtvvVV9+/bVypUr1b59e61evTrY0QAAQBtzTrADNFVFRYUKCgo0d+5cZ1l4eLhSU1OVn59f633Ky8tVXl7u/F5SUiJJOn78uDwej7VsHo9Hp06d0jmecJ2tDLPWb6CdU2l06lSl63JL7s4ukT+Y3Jxdcm9+t+aW3J1datn8//znP6336X2OlSRjjPX+m8W41D/+8Q8jyezatctn+T333GOuuOKKWu/z4IMPGkncuHHjxo0bt1Zw+/zzz1ui5Gg0116paoq5c+cqMzPT+b2yslLHjx/Xueeeq7Awe9V6aWmpkpKS9Pnnnys2NtZav4Hm1tySu7NL5A8mN2eX3Jvfrbkld2eXWk/+gwcPKjExMdhxfLi2qDrvvPPUrl07FRcX+ywvLi5WQkJCrfeJiopSVFSUz7L4+PhARVRsbKwrJ6xbc0vuzi6RP5jcnF1yb3635pbcnV1yf/4LLrhA4eGh9dbw0Erjh8jISA0ZMkQ7duxwllVWVmrHjh1KSUkJYjIAANAWufZKlSRlZmbqlltu0dChQ3XFFVdo6dKlKisr06233hrsaAAAoI1xdVH1H//xH/p//+//ad68eSoqKtKgQYOUk5Ojbt26BTVXVFSUHnzwwRovNYY6t+aW3J1dIn8wuTm75N78bs0tuTu7RP5ACjMm1D6PCAAA4D6ufU8VAABAKKGoAgAAsICiCgAAwAKKKgAAAAvaTFG1cOFCXX755erUqZO6du2q8ePH69ChQz5tTp8+rYyMDJ177rnq2LGjJk6cWOPLRX/xi19oyJAhioqK0qBBg2ps59ChQ7r22mvVrVs3RUdH61vf+pYeeOCBRv1twRUrVqhnz56Kjo7WsGHDtGfPHp/csbGxOu+889SxY0eFhYXpxIkTIZvba+HCheratavCw8MVFhamqKgojRo1Sh999JHTJlTze8f+nHPOUVhYmM/t9ttvD+nsknTvvffWyO29bdiwIeTzL1y4UAMGDFBERITCw8MVERGh0aNH++QLZv68vDzdcMMNSkxMVFhYmDZt2uST/fLLL1dMTIwiIyMVGRmpsLAwFRYWWs1e1SeffKJOnTo1+guNg3m+sZ1b+veYR0ZGql27dmrXrp06d+6scePGOeebUM3uzR8bG1vnuSbU87fU+SZQ+SXp008/1YQJE3T++ecrNjZWkydPrpGvQcH+OzktJT093Tz//PPmgw8+MIWFhWbMmDGmR48e5uTJk06b22+/3SQlJZkdO3aYffv2meHDh5srr7zSp5877rjDLF++3Pz4xz82AwcOrLGdTz/91KxevdoUFhaav//97+aVV14xXbt2NXPnzq0330svvWQiIyPN6tWrzYEDB8yMGTNMfHy8ufbaa53cv/zlL80ll1xi4uPjjSTz1VdfhWzu4uJiZ9xvueUWs2bNGrN161YzYsQIExMTYy644AJz5syZkM7vnTNDhw41P/zhD82oUaPMBRdcYD799FNTUlIS0tmNMSYtLc0sXbrUvP766+Yvf/mLGTVqlImLizMdOnQwX3/9dcjnT01NNeeff74ZNWqU2bBhg7n66qtNTEyMueyyy8zZs2eDnn/btm3m17/+tXn55ZeNJLNx40ZnnXfuPProo2bWrFmmf//+RvL9W6U2sntVVFSYoUOHmtGjR5u4uLh6cxsT/PON7dxVj9cHH3zQ/P73vzfXXnutSUhIMKNHjzZJSUnmzJkzIZvdmG/mzCWXXGImTpzoHK8XXHCBOXr0qNNHKOdvqfNNoPKfPHnSfOtb3zITJkww7733nnnvvffMuHHjzOWXX+6cbxqjzRRV1R07dsxIMm+88YYxxpgTJ06YiIgIs2HDBqfNhx9+aCSZ/Pz8Gvd/8MEH633Aq7rrrrvMVVddVW+bK664wmRkZDi/nz171iQmJpqFCxfWmtt7knNL7tryf/LJJ67I/93vftfceeedrp0zXt78Y8aMcUX+1157zYSHhzsFbNW5k5ubG/T8VVUvqqrbt2+fkWSee+45Y4z9sb/33nvNTTfdZJ5//vlGPcGEyvkmULmrZl+9erWRZPbv3x/y2b3nmqr5A3W+CeTYV80fqPON7fzVzzfezGFhYSY3N7fB/r3azMt/1ZWUlEiSunTpIkkqKCiQx+NRamqq06Z3797q0aOH8vPzm7ydTz75RDk5Ofrud79bZ5uKigoVFBT4bDs8PFypqak1tu3N7eWW3F5ffPGFpG/+ZlNSUpJr8q9bt069evWSJK1du1anTp1yTXavt99+W5J04403Sgr9uVNeXu68ZCz9e+6Hh4frrbfeCmp+f3399deSpLi4OEl2x37nzp3asGGDVqxY0aj2oXK+CWTuqtl37typ5ORkFRcXuyL7unXrdN555+nKK6+UJMXExEhy19hLgT3fBCJ/9fONJEVHRzvnm8Zqk0VVZWWl5syZoxEjRqhfv36SpKKiIkVGRtZ4bbZbt24qKiryextXXnmloqOj9Z3vfEdXX321FixYUGfbL7/8UmfPnq3xTfDVt+3N7c3sltyS9Mwzz6hDhw4aOHCgYmJi9MYbbygyMtIV+adOnaq1a9dqwIAB6tWrl3JycnTTTTe5IruXd+7ExMTopptukhT6c2f48OHq0KGD7rvvPp08eVJ33HGHunfvrsrKSn3xxRdBze+PyspKPfTQQ5Kkiy++WJK9sf/nP/+pn/zkJ1qzZk2j/zBuKJxvAplbkpYvX67evXtLkvbu3avc3Fz985//DPnsU6dO1YsvvqgdO3aoY8eOioyM1MKFCyW5Z+ylwJ5vApW/6vnm1KlTKisr0y9/+UudPXvWuRjQGG2yqMrIyNAHH3ygl156KWDbWL9+vd59911lZ2dr69atevzxxyVJb775pjp27Ojc1q1b1+g+vbnnzZsXqNgByS1J06ZN07hx45SQkKARI0Zo8uTJOn36tCvyz5w5U5s3b9Znn32mHTt2aO3atdq4caP/b2AMQnavn/3sZzpy5Ijuvvtuq5mrsp3//PPP14YNG/Tqq6+qU6dOysnJ0fDhw3XZZZcF5C/TB2r8MzIyanwoxpYZM2Zo6tSpGjlyZK3rQ/V8E8jckrR//34lJCRow4YN6tWrlyZPnqyKigob0QOafebMmUpPT9fKlSv11VdfOeeaTz/91Ep2KfBjLwX2fBOo/FXPNx07dlRcXJxOnDjh9/nG1X/7rylmz56tLVu2KC8vTxdeeKGzPCEhQRUVFTpx4oRPJV1cXKyEhAS/t5OUlCRJ6tu3r86ePauZM2fq7rvv1tChQ30+AdStWzdFRUWpXbt2NZ6kq267au7PPvvMNbm9fv3rX+vNN9/Url27dMEFF6hz587auHGjK/JXnzOdO3eW9M0l5VDP7s3/8ssvq127dvrFL37hLHfD2KelpWn06NHauHGjtm3bpoEDByohIUHf+ta3gpq/sbxz549//KPPk4Ct7Dt37tTmzZudAtAYo8rKSp1zzjlatWqVbrzxxpA83wQqtzf79u3b9eabbyo5OVk/+MEP1LlzZ33yySchn92b3zv2Xbt2lfTNS9JuGHtv/kCebwKZPy0tTZ9++qm+/PJLnXPOOYqPj3fON43VZq5UGWM0e/Zsbdy40XmNvaohQ4YoIiJCO3bscJYdOnRIR44cUUpKSrO2XVlZKY/Ho8rKSsXExOjiiy92bp06dVJkZKSGDBnis+3Kykrt2LFDw4cPd2Vu77ZrG3fzzQckVF5eHtL565oz3gP2qquuCtnsku/Yf/vb39a4ceN0/vnnO+1Deeyr53/99dc1cOBA7dy5U8eOHdMPfvCDoOZvSPW54y3YvGxlz8/PV2FhoXNbsGCBOnXqpMLCQk2YMCFkzze2c9d3vHrPN4mJiSGb3Zuzen7vuaZ79+4hPfbV8wfyfBOo/FWdd955io+P9znfNFqj39LucrNmzTJxcXHm9ddfN1988YVzO3XqlNPm9ttvNz169DA7d+40+/btMykpKSYlJcWnn48//tjs37/f/OxnPzO9evUy+/fvN/v37zfl5eXGGGNefPFFs379enPw4EHz6aefmvXr15vExEQzbdq0evO99NJLJioqyqxZs8YcPHjQzJw508THx5tbbrnFyf3Xv/7V5Obmmscff9xIMnl5eWb//v3mJz/5ScjlLioqMsYYM23aNBMdHW2effZZs3fvXrN582Zz3XXXmc6dOzsfZQ3FcS8qKjKzZs0ynTp1MrfeeqvJyckxe/bsMWvWrDE9e/Y0I0eODOnsxvx7zr/44otGklm3bp0r5nzV/DExMWbFihUmPz/fLFu2zMTHx5s77rgjJPJ//fXXTl+SzJIlS8z+/fvNZ5995oz95s2bTW5urvnDH/5gJJm1a9ea/fv3my+++MJK9uoa+0moYJ9vbOeuerzedtttJicnxznfjBkzxnTp0sUUFxeH5Jh75/vUqVOdc6X3XNOjRw8zYsQIp49Qzt9S55tA5TfGmNWrV5v8/HzzySefmD/84Q+mS5cuJjMzs8G+q2ozRZX+72PB1W/PP/+80+Zf//qX+fnPf246d+5s2rdvbyZMmGC++OILn36++93v1trP4cOHjTHfPHCXXXaZ6dixo+nQoYPp27evefTRR82//vWvBjMuW7bM9OjRw0RGRporrrjCvPPOO3XmrnpbtWpVyOVuaNwfffTRkB73+rKPHj3a+dhtqGavL3+oz/mG8q9evTok8v/P//xPrf3ecsstDR6zDz74oJXs1TX2CaausW+p843t3MbUPV+GDx9uPvroI2OMnfkSiOz15X/mmWecNm7Mb/t8E6j8xhhz3333mW7dupmIiAjzne98xzzxxBOmsrKyUX17hRljjAAAANAsbeY9VQAAAIFEUQUAAGABRRUAAIAFFFUAAAAWUFQBAABYQFEFAABgAUUVAACABRRVAAAAFlBUAQAAWEBRBQAAYAFFFQAAgAUUVQAAABb8f58N2gQoK7TXAAAAAElFTkSuQmCC\n",
|
575 |
"text/plain": [
|
576 |
"<Figure size 640x480 with 1 Axes>"
|
577 |
]
|
|
|
581 |
}
|
582 |
],
|
583 |
"source": [
|
584 |
+
"new_df.date.hist(bins=400)"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
585 |
]
|
586 |
},
|
587 |
{
|
588 |
"cell_type": "code",
|
589 |
"execution_count": null,
|
590 |
+
"id": "1acf60dc",
|
591 |
"metadata": {},
|
592 |
"outputs": [],
|
593 |
+
"source": []
|
|
|
|
|
594 |
}
|
595 |
],
|
596 |
"metadata": {
|
utilities/readme_update.py
ADDED
@@ -0,0 +1,48 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import os
|
2 |
+
|
3 |
+
from datasets.download.download_config import DownloadConfig
|
4 |
+
from datasets.utils.file_utils import cached_path
|
5 |
+
from datasets.utils.hub import hf_hub_url
|
6 |
+
|
7 |
+
|
8 |
+
def get_readme_path(dataset_name):
|
9 |
+
readme_path = hf_hub_url(dataset_name, "README.md")
|
10 |
+
return cached_path(readme_path, download_config=DownloadConfig())
|
11 |
+
|
12 |
+
|
13 |
+
def update_readme(dataset_name, subreddit, date_to_fetch):
|
14 |
+
path = get_readme_path(dataset_name=dataset_name)
|
15 |
+
readme_text = f"""
|
16 |
+
# Dataset Name
|
17 |
+
{dataset_name}
|
18 |
+
|
19 |
+
## Update Frequency
|
20 |
+
The dataset is updated daily and covers the period from `{os.environ["START_DATE"]}` to {date_to_fetch}
|
21 |
+
|
22 |
+
## Dataset Overview
|
23 |
+
The goal is to have an open dataset of `{subreddit}` submissions. This has been taken from the Pushshift API.
|
24 |
+
|
25 |
+
## Data Collection
|
26 |
+
This has been collected with sequential calls that follow the pagination of the pushshift request.
|
27 |
+
|
28 |
+
## Attribution
|
29 |
+
Data sourced from the Pushshift API.
|
30 |
+
"""
|
31 |
+
|
32 |
+
append_readme(path=path, readme_text=readme_text)
|
33 |
+
return readme_text
|
34 |
+
|
35 |
+
|
36 |
+
def append_readme(path, readme_text):
|
37 |
+
generated_below_marker = "--- Generated Below ---"
|
38 |
+
with open(path, "r") as file:
|
39 |
+
content = file.read()
|
40 |
+
|
41 |
+
if generated_below_marker in content:
|
42 |
+
index = content.index(generated_below_marker) + len(generated_below_marker)
|
43 |
+
content = content[:index] + "\n" + readme_text + "\n" + content[index:]
|
44 |
+
else:
|
45 |
+
content += "\n" + generated_below_marker + "\n" + readme_text + "\n"
|
46 |
+
|
47 |
+
with open(path, "w") as file:
|
48 |
+
file.write(content)
|