How to Generate an Analytics Report (pdf) in Python!

Поділитися
Вставка
  • Опубліковано 8 чер 2024
  • The first 1000 people to use the link will get a free trial of Skillshare Premium Membership: skl.sh/keithgalli10201
    In this video we see how we can take visualizations that we plot in python libraries like Matplotlib & Plotly and package them into a nice looking analytics report using the fpdf library.
    Source code: github.com/keithgalli/generat...
    Data: github.com/CSSEGISandData/COV...
    PyFPDF Docs: pyfpdf.readthedocs.io/en/latest/
    Helpful blog post mentioned: towardsdatascience.com/covid-...
    Thank you to Skillshare for sponsoring this video!
    -------------------------
    Follow me on social media!
    Instagram | / keithgalli
    Twitter | / keithgalli
    -------------------------
    Video Timeline!
    0:00 - What we will be doing in this video
    1:30 - Check out Skillshare! (sponsored)
    3:00 - Source code & Setup
    6:37 - Python FPDF library basics
    9:42 - Choosing our paper format (A4, Letter, etc)
    11:54 - Adding and resizing images in our PDF!
    18:52 - Helper method (which states & countries can we plot?)
    21:48 - Continuing to build out our report (exploring source code)
    27:17 - Adding additional pages to the report
    29:09 - Adding a title to our report
    32:37 - Adding a professional letterhead to report
    35:00 - Plotting geographic maps with covid-19 data (plotly)
    40:02 - Using datetime library to automatically grab & format yesterday’s date
    43:46 - Finalizing our report
    46:41 - Where are the colors set?
    48:11 - Final thoughts
    -------------------------
    If you are curious to learn how I make my tutorials, check out this video: • How to Make a High Qua...
    Practice your Python Pandas data science skills with problems on StrataScratch!
    stratascratch.com/?via=keith
    Join the Python Army to get access to perks!
    UA-cam - / @keithgalli
    Patreon - / keithgalli
    *I use affiliate links on the products that I recommend. I may earn a purchase commission or a referral bonus from the usage of these links.

КОМЕНТАРІ • 187

  • @KeithGalli
    @KeithGalli  3 роки тому +38

    Hope you all enjoyed this video! If you have any questions, let me know here in the comments :)
    Also for a bunch of great classes be sure to check out Skillshare! The first 1000 people to use the link will get a free trial of Skillshare Premium Membership: skl.sh/keithgalli10201

    • @metameles5846
      @metameles5846 3 роки тому +1

      Thanks a lot for this great tutorial. A bonus would have to add a crosstable data for example.

    • @nikhilprem7998
      @nikhilprem7998 3 роки тому

      ua-cam.com/video/PZgQkJSAP2g/v-deo.html
      I am stuck in the imaginary number can you solve it?

    • @JaveGeddes
      @JaveGeddes 3 роки тому +1

      I was hoping to find a way to access BeautifulSoup results in html

    • @utkarshaattarde5272
      @utkarshaattarde5272 3 роки тому

      It's super helpful. I have a question - I'm generating a report having header, footer and in body - a table with bar graph. The problem is table continues to 2nd page and overwrite with the header(starts from top ). Please help me with this. You can answer this question on Stack overflow website :- stackoverflow.com/questions/65987187/page-continuation-below-header-in-fpdf
      Thanks in advance

    • @utkarshaattarde5272
      @utkarshaattarde5272 3 роки тому +1

      Please make more videos with fpdf lib

  • @larflores1
    @larflores1 3 роки тому +3

    This is great! Thanks for all the hard work and effort you put into these tutorials. It really comes through how thoughtful everything is on video. Loved it!

  • @amirabdoll
    @amirabdoll 3 роки тому +2

    Just letting you know that you are a champion and I have so much respect and love for you. I am following your post and immensely enjoying them. Keep the great work up.

  • @davidnguyen7160
    @davidnguyen7160 3 роки тому +2

    I have so many projects lined up but keep getting caught up with your projects. Keep up the great work!

  • @mapa5000
    @mapa5000 3 роки тому +1

    I like the way you look for information and handle issues during your video. Excellent job.!!!

  • @kewalmishra7870
    @kewalmishra7870 3 роки тому +3

    Really grateful for ALL the content that you are putting up in this field. You have no idea how much these videos are helping me. THANKS A LOT!

  • @tyswenson7542
    @tyswenson7542 3 роки тому +6

    Dude, you read my mind with this video... it’s scary how much I needed this.

  • @kbstar12
    @kbstar12 3 роки тому +1

    Thanks Keith! I was able to implement this into my own work this week. Good stuff keep it coming!

  • @chrislee7704
    @chrislee7704 2 роки тому

    Dude thank you!! I'd been searching for a way to generate slick report with python for some time and this has everything I need. Your video also explains the process and features far better than articles I have found.

  • @raulsiqueirayt
    @raulsiqueirayt 3 роки тому +3

    I've been looking for this video a long time, thanks for that, best content ever!

  • @mrmuranga
    @mrmuranga 2 роки тому +1

    Amazing....thanks. Jumping right to my first pdf plots from tomorrow..greatstuff !

  • @nickt423
    @nickt423 3 роки тому

    Keith, thanks for making these videos. They have really helped me!

  • @ICQSamaelGnosis
    @ICQSamaelGnosis 3 роки тому

    Keith - thanks for this video. It just arrived exactly when I needed it! Big thanks!

  • @bidhanbhattarai8863
    @bidhanbhattarai8863 3 роки тому +31

    You come up with the most interesting tutorials Keith.

  • @duonghue8388
    @duonghue8388 3 роки тому +2

    Thank you for your work. It's super helpful. Hope to see more of this

  • @johnwig285
    @johnwig285 3 роки тому +7

    Wtf i didnt know that was possible. This channel is beyond awesome!

  • @itbeat7899
    @itbeat7899 2 роки тому

    You are awesome! I love you are going through each part of the script

  • @matiastorres392
    @matiastorres392 3 роки тому +1

    Amazing that you Start to show us some of cloud service!! Thats its a must on this days!!! Thanks a lot

  • @rodrigoolanda9176
    @rodrigoolanda9176 3 роки тому

    Dude, you're the best! Thanks for sharing your knowledge!

  • @anthonycamarillo5806
    @anthonycamarillo5806 3 роки тому +3

    Thank you UA-cam algorithm for putting this on my home page when I was getting ready to do intense searching on reporting!
    Also quick suggestion: instead of having to download the libraries each time maybe you can export a virtual environment to YAML file so people will automatically have the environment and all of the dependencies

  • @ritwaj6791
    @ritwaj6791 3 роки тому +2

    Damn finally someone came up with us, I was wondering in these times how did non-technical people understand the visualizations looking at code and also that's also not much appealing showcasing to this kind of people in a presentation meeting.

  • @hectormotsepe1581
    @hectormotsepe1581 3 роки тому +7

    Keith Galli.
    You are the best bro
    Much love from South Africa

    • @KeithGalli
      @KeithGalli  3 роки тому

      Appreciate the support! 🙌

  • @oenriqueg
    @oenriqueg 3 роки тому

    Booom! 🤯🤯🤯🤯
    Thank you very much Keith!!
    I have a lot of things to learn and practice, you are amazing. 🙌🙌🙌🙌🙌🙌

  • @cash80flow
    @cash80flow 3 роки тому

    I am always looking forward to your tutorials. Another great one👍👍

  • @Evan_242
    @Evan_242 3 роки тому +1

    Very very useful, I just get a job in Data Science and I'm sure this kind of report will be very handy :) Thanks Keith

  • @faizalimuhammadzoda4731
    @faizalimuhammadzoda4731 3 роки тому +1

    Very useful tutorial. Thanks. And greetings from Central Asia.

  • @abhishekgautam478
    @abhishekgautam478 3 роки тому

    man your all videos are awesome. thank you.

  • @e-normous
    @e-normous Рік тому

    Thanks a lot for this very helpful tutorial. Keep up the good work!

  • @NoahElRhandour
    @NoahElRhandour 3 роки тому +2

    I'm learning python and your tutorials are among the best I've ever seen. thank you sooooo much and greetings from Germany x)

  • @amanpatyal2187
    @amanpatyal2187 3 роки тому

    Waiting for the second one....
    . Veeeerrry informative...

  • @alpheim4129
    @alpheim4129 Рік тому

    Thank you so much. With your help I have automated reports on my website❤️

  • @Oceansteve
    @Oceansteve 2 роки тому

    I watched this today last year and was only starting to learn Python for Data Science. Now I am using it for paid work. TY!

  • @patrickdamour1728
    @patrickdamour1728 3 роки тому

    ❤️ content is constantly improving!

  • @gopichand5717
    @gopichand5717 3 роки тому

    Really enjoyed your video
    Thanks for sharing 🙂

  • @TheMISBlog
    @TheMISBlog 3 роки тому

    Great Video Keith, keep up the good work

  • @yitongsun6702
    @yitongsun6702 2 роки тому

    Thank you, it's really helpful.

  • @TanayaAmar
    @TanayaAmar 3 роки тому

    Love the topic! Thanks so much!! 🤩 And the hairstyle looks great to me - not sure why some folks have a problem lol

  • @web3global
    @web3global 3 роки тому

    Great Efforts Brother !!!
    Keep the work up!

  • @DodaGarcia
    @DodaGarcia Рік тому +1

    Thank you for this overview! I am especially impressed by the map plotting functionality, will definitely look into that.
    As someone coming from web dev, thought I'd suggest that it might be easier to, instead of trying to wrangle the PDF layout in the code, generate the report in HTML with the help of a utility CSS library such as Tailwind and then running a separate step to convert that into PDF. That would make it easier to generate a standard layout, and as a bonus would also give you the option to make the HTML version available.

  • @brentsimpson3791
    @brentsimpson3791 Місяць тому

    Awesome video! Thanks

  • @JasonMinhas
    @JasonMinhas 3 роки тому +5

    Hey, Keith awesome tutorial! At 42:23 to remove leading "0" you can do "%#m/%#d/%y" instead. The "#" will remove leading "0"

    • @KeithGalli
      @KeithGalli  3 роки тому +5

      Great suggestion! So I was going to do this, but I believe that date format is Windows specific. On Linux & MacOS the "#" needs to be a "-", so ultimately I decided to go with a solution I was sure would work on all platforms :).

  • @williamfarrell3822
    @williamfarrell3822 3 роки тому

    Great job, Keith

  • @wewjoj
    @wewjoj 3 роки тому

    This video is awesome!

  • @Oceansteve
    @Oceansteve 3 роки тому +1

    Top class content! faultless tutorials..

  • @foxwelly
    @foxwelly 3 роки тому

    I love you Keith!!! Your tutorials are the bees knees!!

  • @kacperm2909
    @kacperm2909 3 місяці тому

    Very useful for learning python ;) ThX

  • @Gamma3
    @Gamma3 3 роки тому +1

    Thanks! This is the best channel

    • @KeithGalli
      @KeithGalli  3 роки тому +1

      appreciate the support 🙌

  • @xavierfournat8264
    @xavierfournat8264 3 роки тому +1

    Hi Keith,
    This were the best 49:14 minutes I spent this week...
    ...OK, maybe the second best 49:14, right after the time spent yesterday building play dough dinosaurs with my 2 y.o. son after a 1 week business trip. But you were really close from 1st place, I promised :)
    More seriously, absolutly stunning tutorial! Highly valuable and extremly clearly explained.
    Thanks for that !

    • @KeithGalli
      @KeithGalli  3 роки тому +1

      This comment put a big smile on my face! I appreciate the kind words. I know I could never compare to building play dough dinosaurs with your son, but I feel honored to even come close :)

  • @thyagovieira6283
    @thyagovieira6283 2 роки тому

    Thanks Keith!

  • @Trazynn
    @Trazynn 3 роки тому

    You deserve better than Skillshare man.

  • @AbhishekSharma-hy4nl
    @AbhishekSharma-hy4nl 3 роки тому +3

    I love ur videos bro... because of u I'm able to qualify an data analyst exam also gave some interviews didn't get any hope get in future but anyway thanks alot..❤️❤️ love from India and also make some videos on azure and aws..

  • @SHABAREESH99
    @SHABAREESH99 3 роки тому

    Thanks you helped me so much in python

  • @money_wins_controls
    @money_wins_controls 3 роки тому +2

    You are my hero
    Not all heroes wear caps!

  • @hosseinramezani1428
    @hosseinramezani1428 3 роки тому

    Thank you for your work

  • @hannukoistinen5329
    @hannukoistinen5329 2 роки тому

    Some statistic courses may should be taken!! Nice keyboard working anyway:)!!

  • @kanefoster8780
    @kanefoster8780 3 роки тому +9

    This is absurd! I was quite literally about to search on UA-cam how to design and analytic report in Python. Great minds ey.

    • @ayencoscolfield3312
      @ayencoscolfield3312 3 роки тому

      Wow Great minds! meaning you like it , why is it absurd then , i dont get

    • @kanefoster8780
      @kanefoster8780 3 роки тому

      @@ayencoscolfield3312 Haha I meant it was an absurd coincidence such a video would be uploaded just as I started looking for it, and we were two great minds for thinking of the same idea at the same time

    • @ayencoscolfield3312
      @ayencoscolfield3312 3 роки тому

      @@kanefoster8780 ok i understand now, cheers

  • @rezashams7434
    @rezashams7434 3 роки тому

    Attractive as expected 👍

  • @starlabs7775
    @starlabs7775 3 роки тому

    nice tutorial bro!

  • @mprencipe
    @mprencipe 2 роки тому

    It would be very nice to have a tutorial on pythontex, too! There are no decent tutorials of this subject and, since your are very skilled in teaching, you would make the difference!

  • @vitoroliveiradesouza4214
    @vitoroliveiradesouza4214 Рік тому

    Hi Keith! Awesome Tutorial, thanks for sharing it!
    Just one quick question: Did you realize you were clicking the rotate button instead of the update one at 26:30?

  • @drikarts4816
    @drikarts4816 2 роки тому

    Thank you!

  • @barikam2m891
    @barikam2m891 Місяць тому

    You are the best thank you.

  • @yashkaran1
    @yashkaran1 2 місяці тому

    Thanks man!!!!

  • @devjesusc
    @devjesusc 2 роки тому

    Awesome!!

  • @allanmarzuki5534
    @allanmarzuki5534 3 роки тому

    Awesome tutorial Keith! How about LaTeX tutorial for the next video?

  • @ajdevz1067
    @ajdevz1067 3 роки тому

    Thanks for this python tutorials

  • @Magnus.Ek.1
    @Magnus.Ek.1 3 роки тому

    I use Ananconda and set-up an environment that I named ´covidMap´. In that env with python3.8 I installed all the dependencies. I got the report to run instantly. Next move is to see if I can get it to work with an European map. Thanks for the inspiration!

  • @SoutheastSam3
    @SoutheastSam3 3 роки тому

    I needed this. Don't want to scroll through a Jupyter notebook when showing analysis at work.

  • @hansomary3827
    @hansomary3827 3 роки тому

    Great, good job

  • @hansmachtdampf
    @hansmachtdampf 2 роки тому

    Hi Keith,
    Thanks for your videos - they are really great.
    One question that I have - I have done my analysis in Jupyter Notebooks and can render them via voila.
    I use some styling on the tables colors etc.
    Now I want to generate a pdf report out of it.
    Any hint? Especially on the step from Jupyter to pdf.
    Thanks a lot and keep up the great works !

  • @user-he5mq3fv1d
    @user-he5mq3fv1d 3 роки тому

    thank you keith
    (from morocco)

  • @nyasingajeff1789
    @nyasingajeff1789 3 роки тому

    I see You Got a new haircut, But as Usual Fresh Content.. Awesome Content

  • @python360
    @python360 3 роки тому

    Nice video, no need to try Skillshare with people like you making vids on YT!
    I have just been doing a price tracker with Python, using CRON to get data daily from Amazon, and save to MySQL and make graphs with Matplotlib.
    Is Plotly better/going to replace Matplotlib? In your opinion?
    Will be interested to see your next video!

  • @israeldeandrade4022
    @israeldeandrade4022 Рік тому

    thank you

  • @easy_coding0
    @easy_coding0 2 роки тому

    that is Mr i liked the way you rxplain things

  • @spyxfam
    @spyxfam 3 роки тому

    Love your vid :) Is it also possible to add other font family like Verdana?

  • @dr.girthmuffin8584
    @dr.girthmuffin8584 3 роки тому +1

    Weepee! what a great vid u have! just the right size for me! I hate when they try to cram too much into short vid. OUCH!
    Anyways! I do wonder though... should I use PDF for my wedding invitations or is more for legal documents?
    keep up great fun!
    -Doc

    • @KeithGalli
      @KeithGalli  3 роки тому +1

      Good to hear from you again Dr. Girth Muffin! It's been a while. Yeah I definitely recommend this method for wedding invitations. You can even go as far as using an API to automatically send them, wouldn't that be neat! xoxo keith

  • @user-nl6vf1cg2s
    @user-nl6vf1cg2s 3 роки тому

    thank you so much. :)

  • @swm7f137
    @swm7f137 2 роки тому

    can we use this package in dash plotly please advice
    and thank you so much for your hard work

  • @afgaco
    @afgaco 2 роки тому

    GRACIAS!

  • @GOTTT
    @GOTTT Рік тому

    Hey Keith,
    Amazing video! Really well explained and helped me out a lot here.
    My problem is that the pdf generation is taking forever!
    Even just 1 image. Do you know why this could be?

  • @alimehrhosseini2230
    @alimehrhosseini2230 3 роки тому

    Tnx Keith

  • @GhizlaneBOUSKRI
    @GhizlaneBOUSKRI 3 роки тому

    Finally 🙏🏻

  • @ericbi8338
    @ericbi8338 3 роки тому

    Keith, you are so cool!

  • @ritwaj6791
    @ritwaj6791 3 роки тому +2

    Also could you please make a git and GitHub full tutorial video explaining things like settings to opt while installing, cloning, and uploading the first project. T

  • @marcelocampos665
    @marcelocampos665 Рік тому

    Nice!

  • @joaopedrodanhoni5681
    @joaopedrodanhoni5681 3 роки тому

    Fkn A bro. Amazing.

  • @ivannordnesdahlberg6368
    @ivannordnesdahlberg6368 3 роки тому

    Thanx for another great tutorial. Can you also show an example where you include some nice tables in the PDF report?

    • @KeithGalli
      @KeithGalli  3 роки тому +1

      Glad you enjoyed the video! I might create some examples with tables at some point, but until I do that this answer on stack overflow might be helpful: stackoverflow.com/a/39358752

  • @Magmatic91
    @Magmatic91 3 роки тому

    Please make a video about a real world project in Data Analytics like the one you did on Sales Analytics. Thanks.

  • @pedrobarros9444
    @pedrobarros9444 3 роки тому

    thanks keith uber!

  • @Voltaire321
    @Voltaire321 3 роки тому

    pipenv is really nice for handling dependencies so you don't have to manually install modules

  • @andymartinez5407
    @andymartinez5407 3 роки тому

    Keith, you are a fucking rockstar man! Greetings from Argentina bro!

  • @seanmackenziedataengineering
    @seanmackenziedataengineering 3 роки тому

    Pretty cool combination of tech to accomplish this! The R crowd are pretty spoiled with R markdown but for those who prefer Python this is a neat way to do it.

    •  3 роки тому +2

      Yep. This type of exercise is hard to do in python. R with Rmarkdown is so much easier.

    • @KeithGalli
      @KeithGalli  3 роки тому +1

      Agreed! This video was pretty heavily inspired by trying to find a Python alternative to R markdown

    • @user-tf5bs6de6z
      @user-tf5bs6de6z 3 роки тому

      @@KeithGalli , and in RMarkdown you can use code chunks with Python code too.

  • @tophattommy2
    @tophattommy2 Рік тому

    Do you have a video covering how you created the maps? I recognize that you mentioned the "Create COVID-19 Map Animation..."

    • @tophattommy2
      @tophattommy2 Рік тому

      But I have yet to find a written tutorial that actually works.

  • @zhiyingsun323
    @zhiyingsun323 2 роки тому

    Hi, kind of curious, for an analytical report, it is ok if it just includes some pics?

  • @Hibernatus50
    @Hibernatus50 3 роки тому

    Hello, thanks for the video, super informative! However, I'm having an issue with the create_usa_figure function. It throws me an error : "write_image() got an unexpected keyword argument "engine" " . For the life of me, I can't figure out how to solve that (tried removing it, tries reinstalling plotly, installing kaleido, ...) nothing works and can't find help on StackOverFlow.
    Do you have an idea?

  • @martinkroll1613
    @martinkroll1613 3 роки тому

    Hi, thanks for a great video!
    I was trying to follow your tutorial with data from db of my Django project and faced the following problem:
    If I don't save charts and just add them to memory stream (buf_chart = io.BytesIO() plt.savefig(buf_chart, dpi=200) I can't use pdf.image( ) method as it expects image path as first argument and not binary data.
    Any suggestions how can I add images to pdf from memory without saving them?

  • @karakol86
    @karakol86 3 роки тому

    Super cool! Can you embed a video in an “interactive” pdf? Similar to a .gif?

  • @SpanishJohn
    @SpanishJohn 2 роки тому

    Hey Keith...trying to get Ur tutorial further but can't manage to use custom fonts...any way you could go deeper?

  • @HardCloserTV
    @HardCloserTV 3 роки тому +1

    Hello Keith ! I'm having problems importing the fpdf library
    ImportError: cannot import name 'FPDF' from partially initialized module 'fpdf' (most likely due to a circular import) help please 😪