Pivot tables with Pandas

Поділитися
Вставка
  • Опубліковано 2 гру 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!

  • @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.

  • @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!

  • @AndrewT
    @AndrewT Місяць тому +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  Місяць тому

      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. :-)

  • @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!

  • @inderjeetchandnani302
    @inderjeetchandnani302 6 місяців тому

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

  • @mosama22
    @mosama22 9 місяців тому +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  9 місяців тому

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

  • @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.

  • @real.samad_
    @real.samad_ 6 місяців тому +1

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

    • @ReuvenLerner
      @ReuvenLerner  6 місяців тому

      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.

  • @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.

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

    Very cool explanation. Thanks a lot!

  • @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?

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

    Easy to understand, thanks!

  • @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

  • @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.

  • @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.

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

    There was a great class, Thanks!

  • @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

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

    thanks Reuven

  • @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.

  • @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!

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

    great video sir

  • @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 5 місяців тому +1

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

    • @ReuvenLerner
      @ReuvenLerner  5 місяців тому

      @@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 5 місяців тому +1

      ​@@ReuvenLerner TYSM 😭

  • @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.

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

    very helpful sir

  • @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.

  • @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!

  • @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

  • @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 ☺ ...

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

    thank you

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

    Thanks

  • @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

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

    Thank u Sir

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

    excellent

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

    blud i love ya

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

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

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

    Thank you