Pivot tables with Pandas

Поделиться
HTML-код
  • Опубликовано: 27 ноя 2024

Комментарии • 97

  • @Maleficent_Method973
    @Maleficent_Method973 4 месяца назад +2

    Just started learning python a few days ago, it's my first programming language as well.....very confusing so far...You have helped a lot even with a pretty short video. Thanks so much!

    • @ReuvenLerner
      @ReuvenLerner  4 месяца назад

      I'm glad that the video helped -- keep at it, I promise that it'll get easier over time.

  • @reygaji4001
    @reygaji4001 Год назад +2

    Omg, you are a godsend. Where have you been all this time when I was just starting to learn this stuff T_T Your videos are better than many python tutorials out there with millions of views damn

    • @ReuvenLerner
      @ReuvenLerner  Год назад

      I'm delighted to hear that you enjoyed it! Thanks so much for your kind words.

  • @fdu6
    @fdu6 Месяц назад +1

    This was exactly what I needed! Just wanted to learn what pivot tables would look like in Pandas because I'm still kinda struggling to grasp it, thanks!

    • @ReuvenLerner
      @ReuvenLerner  Месяц назад

      Fantastic, so glad that it helped!

  • @YossiSoberano
    @YossiSoberano 2 года назад +2

    Thanks Reuven, for another informative and educational video 👍

  • @Kaelthas_Sunstrider
    @Kaelthas_Sunstrider 2 года назад +2

    You’re an amazing teacher! I’m enjoying your book Python Workout :)

    • @ReuvenLerner
      @ReuvenLerner  2 года назад +1

      Thanks so much for your kind words, and for your support! (And hey, if you have a few moments to review the book on Amazon, that's always highly appreciated...) More is coming soon, BTW, with Pandas Workout!

    • @Kaelthas_Sunstrider
      @Kaelthas_Sunstrider 2 года назад +1

      @@ReuvenLerner I’m glad you mentioned. Just got it via early access!

  • @thomasgyting3251
    @thomasgyting3251 10 месяцев назад +1

    I was having a difficult time understanding pivot tables and what exactly they are vs regular tables, and your example at the end that included multiple agg functions made the lightbulb go off! Love your content!

    • @ReuvenLerner
      @ReuvenLerner  10 месяцев назад

      So happy to hear it; thanks so much!

  • @33samogo
    @33samogo 2 года назад +3

    Great explained! .pivot() is amazing, it's exactly what I was looking for, it's like y axes in "xy coordinate table", fantastic!

    • @ReuvenLerner
      @ReuvenLerner  2 года назад

      Delighted it helped!

    • @33samogo
      @33samogo 2 года назад +1

      @@ReuvenLerner Thanks Reuven, I have one more question, how to create a list of lists from pivot table? Is there a function like DataFrame.iterrows() for pivot table?

    • @ReuvenLerner
      @ReuvenLerner  2 года назад +1

      @@33samogo A pivot table is a data frame, so all of the methods you know and love from data frames will also work there. So yes, you can use iterrows, but remember that when you turn a data frame into a list of lists, you're moving data from NumPy's compact and efficient storage to regular Python objects, which are neither compact nor efficient.

    • @33samogo
      @33samogo 2 года назад +1

      @@ReuvenLerner Thank you! I struggle with data-frames for whole day, especially with multiindexing, I am trying to interpolate pivot table rows, that's why I need a list of row values to create a new interpolated one, but for sure there is a way to interpolate a whole pivot data-frame in to a tubular data data-frame also?!

    • @33samogo
      @33samogo 2 года назад +1

      Pandas documentation : "Please note that only method='linear' is supported for DataFrame/Series with a MultiIndex." I need to apply quadratic interpolation, so pivot table is useful for me just to reshape the data-frame values, also I am not sure if data-frame length can be automatically adjusted during interpolation operation according to number of output values (from 20-->~1000). So, I know how to retrieve a row values from pivot table, change a type of values, apply interpolation and save values in list variable, now I need to automate the process for all rows in the pivot/data-frame table and save all list variables as data frame using for loop or comprehension. What are the steps to perform this operation in a "clean" way or what functions should I consider? I started with Pandas a week ago just for fun but now I'm fell in love with it, thank you.

  • @AndrewT
    @AndrewT 26 дней назад +1

    You can also group by two or more features right? So I guess pivot table does something similar but puts one of the features on the cols and one on the rows so you can read it like a two-way table

    • @ReuvenLerner
      @ReuvenLerner  25 дней назад

      Yes! Doing a groupby on two columns performs precisely the same operation as a pivot table. It's just the formatting/display of the information that's different. This is on my list of videos to do; you might just have made it a bit earlier. :-)

  • @mosama22
    @mosama22 8 месяцев назад +1

    Thank you so much for the beautiful videos, I just wish you had a direct link to the data please, so we can follow up with you.
    Thanks again though for the beautiful videos 🙂

    • @ReuvenLerner
      @ReuvenLerner  8 месяцев назад

      Glad you are enjoying them! most of the data is (should be!) available from files.lerner.co.il/ .

  • @Darkev77
    @Darkev77 Год назад +5

    Great, thanks for explaining it so concisely. However, why would I use a pivot table when I can also group by multiple columns (group by year and team: `groupby(["Year", "Team"], observed=True)`)?

    • @ReuvenLerner
      @ReuvenLerner  Год назад +1

      Good question! When you group by multiple columns, you get a multi-index as the result. A pivot table takes one dimension of the multi-index and turns it into columns. So instead of a single column of results with a multi-index on the rows, you get a single column of results with a simple index on the rows *and* a simple index on the columns. Same information, presented differently, which can be easier to understand and process.

    • @Darkev77
      @Darkev77 Год назад +1

      @@ReuvenLerner brilliant, thanks a lot!

  • @joseluisbeltramone599
    @joseluisbeltramone599 Год назад +1

    Very cool explanation. Thanks a lot!

  • @mario1ua
    @mario1ua 10 месяцев назад +1

    Hey Reuven, great tutorial, thanks! I've also watched your pivot and **kwargs videos and they were awesome too

    • @ReuvenLerner
      @ReuvenLerner  10 месяцев назад +1

      I'm delighted to hear you enjoyed them! More are (hopefully) coming soon.

  • @angelhanna2917
    @angelhanna2917 Год назад +1

    Easy to understand, thanks!

  • @mcllen
    @mcllen Год назад +1

    There was a great class, Thanks!

  • @jingchun21
    @jingchun21 11 месяцев назад +1

    Thank you so much! I am curious that can we just show a few columns we want? For example, for the sports, I just want to show baseball, badminton. Thanks.

    • @ReuvenLerner
      @ReuvenLerner  11 месяцев назад

      If you only want a few columns, then you have at least two choices: (1) filter the rows before you create the pivot table, or (2) filter the column after the pivot table is created with [[ ]] . I would recommend doing the first, since it reduces the amount of time and memory needed to create the pivot table in the first place.

  • @Amber-rh8dh
    @Amber-rh8dh 5 месяцев назад +1

    Please share the datasource too, if possible...

    • @ReuvenLerner
      @ReuvenLerner  5 месяцев назад

      Data for most of my demos are from files for Pandas Workout, at files.lerner.co.il/pandas-workout-data.zip .

    • @Amber-rh8dh
      @Amber-rh8dh 4 месяца назад +1

      @@ReuvenLerner Thanks!!!
      Btw I needed some practice questions... Could you recommend any source for that ... :)

    • @ReuvenLerner
      @ReuvenLerner  4 месяца назад

      @@Amber-rh8dh Of course! Check out Bamboo Weekly (BambooWeekly.com) for new Pandas problems/questions every week, based on public data sets and current events. And Pandas Workout (PandasWorkout.com/) for 200+ exercises in Pandas. If you liked this video, you'll love both of those!

    • @Amber-rh8dh
      @Amber-rh8dh 4 месяца назад +1

      ​@@ReuvenLerner TYSM 😭

  • @real.samad_
    @real.samad_ 5 месяцев назад +1

    Hello Reuven, can I use smally portion of this video for an instagram reel I am working on?

    • @ReuvenLerner
      @ReuvenLerner  5 месяцев назад

      Maybe -- it depends on the context and what you're using it for. Feel free to e-mail me (reuven@lerner.co.il) to discuss this further.

  • @helloworld2740
    @helloworld2740 2 года назад +1

    great video sir

  • @kaiserkonok
    @kaiserkonok Год назад +1

    Thank you so much🖤. You are doing amazing for us. We would be more happy if you post videos on machine learning with python. 🙏

    • @ReuvenLerner
      @ReuvenLerner  Год назад +2

      I'll try to do some machine learning stuff when I can, but I've got a backlog of other ideas already...

    • @kaiserkonok
      @kaiserkonok Год назад +1

      @@ReuvenLerner Thank you so much

  • @naimahrehman5997
    @naimahrehman5997 4 месяца назад +1

    I believe that we can also achieve the outcome of the pivot table through groupby function

    • @ReuvenLerner
      @ReuvenLerner  4 месяца назад +2

      You will indeed get a similar result by using groupby and specifying that you want to use two columns. However, the result will be a series with a multi-index, rather than a data frame with rows vs. columns. You can switch between such a series and a pivot table with stack and unstack.

  • @faoaccount
    @faoaccount Год назад +1

    thanks Reuven

  • @KonradTamas
    @KonradTamas Год назад +1

    One question, do I always need Categorical data to use pivot tables ? Thanks!

    • @ReuvenLerner
      @ReuvenLerner  Год назад

      The answer, of course, is "yes and no."
      You don't *need* categorical data to do a pivot table, just as you don't *need* categorical table to do a groupby. But think about what's happening in such cases: Every unique value in the column will be a separate row (or column) in the pivot table. If you have only a handful of integers or floats, then that's fine. But if you have several hundred, or several thousand, then you'll end up with a pivot table that doesn't serve anyone well.
      So as a general rule, we say that you should only create pivot tables with categorical data, even though you could well have numeric data that's so limited in the distinct values that it'll work just fine.

  • @pramishprakash
    @pramishprakash Год назад +1

    very helpful sir

  • @joshux3210
    @joshux3210 Год назад +1

    In the pivot_table method, you don't specify you want to calculate the mean. It auto assumes that? Can I use other calculation such as median or max?

    • @joshux3210
      @joshux3210 Год назад +1

      Ok I watched to the end: it's by using the 'aggfunc' parameter

    • @ReuvenLerner
      @ReuvenLerner  Год назад +1

      ​@@joshux3210 Yup! Pretty amazing, right?

  • @marvinlomo5845
    @marvinlomo5845 2 года назад +1

    Thanks Reuven. Is this covered in the Book?

    • @ReuvenLerner
      @ReuvenLerner  2 года назад +2

      Yes, one exercise looks at pivot tables specifically, and a few ask you to create them based on different data sets.

  • @lenkapang-ek4fe
    @lenkapang-ek4fe 2 месяца назад +1

    hi," from pandas import Series, DataFrame" is it essential?

    • @ReuvenLerner
      @ReuvenLerner  2 месяца назад

      No, not essential -- I just do it all of the time, because I find it's convenient.

  • @AnjanBasumatary
    @AnjanBasumatary 2 года назад +1

    How to display the all the rows and column cobination even values are missing in those combination?

    • @ReuvenLerner
      @ReuvenLerner  2 года назад

      If values are missing from that row-column combination, you'll get a NaN value.

    • @AnjanBasumatary
      @AnjanBasumatary 2 года назад

      @@ReuvenLerner Actually, in my case both rows and columns doesnot appear if those rows and columns combination doesnot have any value... tried usi g dropna parameter but no use

  • @aakashniture
    @aakashniture 10 месяцев назад +1

    Hi Reuven, amazing video. After pivoting a column when you get that column's distinct values as new columns. I want to select those columns or save them in a new df but i can't. I am simply just using names of new columns e.g., df['Afghanistan'] but it gives error even though in df.shape() it says Afghanistan as a column.
    Kindly help.

    • @ReuvenLerner
      @ReuvenLerner  10 месяцев назад +1

      Hmm, I'm not sure. The result of pivot_table is a new data frame, so you should be able to say pivot_df = df.pivot_table(...) and then retrieve whichever columns you want. I'm guessing there's a syntax bug somewhere.

    • @aakashniture
      @aakashniture 10 месяцев назад +1

      @@ReuvenLerner my column names were numeric.. i pivoted Years column so new column names were 2019,2020,2021.
      I was selecting them like table['2022'] and was getting a Key error for 2022. I removed apostrophe and tried df22 = table[2022]. And that worked.
      I did not know that if the column name is in numeric ' ' is not used.
      Thanks for the reply Reuven

    • @ReuvenLerner
      @ReuvenLerner  10 месяцев назад +1

      @@aakashniture Right, if your column names are integers, then you can't use quotes around their names. I'm glad that you were able to figure it out!

  • @mohemmedkamal
    @mohemmedkamal 2 года назад +1

    thank you

  • @rafaelsantana5808
    @rafaelsantana5808 6 месяцев назад

    Hello, I would like to know how I can make it count in a column at the end all columns that have values. example:
    count = ID1 + ID2+ ID3

  • @proud_indian0161
    @proud_indian0161 7 месяцев назад +1

    From where can i get this athlete dataset?

    • @ReuvenLerner
      @ReuvenLerner  7 месяцев назад

      It's in the data set for my book, Pandas Workout, at files.lerner.co.il/pandas-workout-data.zip

  • @twocentswithdeb
    @twocentswithdeb 7 месяцев назад +1

    How can I rename the aggregated columns?

    • @ReuvenLerner
      @ReuvenLerner  7 месяцев назад

      It's a data frame, so you can use the "rename" method to change the column names.

  • @hieuthuan1999
    @hieuthuan1999 2 года назад +1

    Thanks @Reuven. I wonder if it is possible to create pivot table with more than one index (row field), and more than 1 value, such as height and weight in average. Excel can do it easily :)

    • @ReuvenLerner
      @ReuvenLerner  2 года назад

      Yup, you can definitely do that! Instead of passing a string for the index or column, pass a list of strings. That'll create a pivot table with a multi-index on one or both axes. It's pretty straightforward - give it a shot!

  • @izzy8655
    @izzy8655 Год назад +1

    Thanks

  • @bhargavkongara2003
    @bhargavkongara2003 Год назад +1

    Thank u Sir

  • @rajeshn5006
    @rajeshn5006 Год назад +1

    excellent

  • @inderjeetchandnani302
    @inderjeetchandnani302 6 месяцев назад

    At time 3:59 if we have a date data, will it work?

  • @ravindrareddy5478
    @ravindrareddy5478 Год назад

    is there any way to merge empty cells using python in a pivot table

    • @ReuvenLerner
      @ReuvenLerner  Год назад

      I'm not quite sure what you mean by this. Can you give me a short example?

    • @ravindrareddy5478
      @ravindrareddy5478 Год назад

      @@ReuvenLerner like I'm having a pivot table in which some cells I'm between the rows are empty, so I want merge those cells with nearest value

  • @guillegonzalez6146
    @guillegonzalez6146 Год назад +1

    blud i love ya

    • @ReuvenLerner
      @ReuvenLerner  Год назад

      Thanks so much! Delighted to have you here with me.

  • @hakangrss
    @hakangrss 4 месяца назад

    someone have might asked, we can do the same thing by creating ''' df.groupby( [ 'year' , 'team' ] ).agg({ 'height' : [ 'mean' , 'count' ]} ) ''' can't we. if so what makes the distinguish between them? Thank you so much ☺ ...

  • @AlexKashie
    @AlexKashie 11 месяцев назад +1

    Thank you