Update rows in Pandas Dataframe based on the list values

Antonych

I have a DataFrame that looks like this:

product units_sold  week
 sku        5        W01
 sku        3        W02
 sku        2        W03
 sku        4        W04
 sku        6        W05
 sku        5        W36
 sku        3        W38
 sku        2        W39
 sku        4        W40

In the 'week', w37 is missing, and columns are in a wrong sequence:

I have a list with all needed rows and right sequence:

week_list = ['W36','W37','W38','W39','W40','W01','W02','W03','W04','W05']

desired output is:

   product units_sold  week
     sku        5        W36
     sku        0        W37
     sku        5        W38
     sku        2        W39
     sku        4        W40
     sku        6        W01
     sku        3        W02
     sku        2        W03
     sku        4        W04
     sku        6        W05

Where W37 is on place and 'unit_sold' is 0

Just add one column solution is not suited, as I have quite a big DataFrame, and there is probably can be other missing rows.

I tried with pd.sort_values and pd.categorical:

def sorter(column):
    reorder = week_list
    cat = pd.Categorical(column, categories=reorder, ordered=True)
    return pd.Series(cat)

df.sort_values(by="week", key=sorter)

this helped me to set the right sequence, but 'w37' is still missing, so the problem is not solved.

Is there any way I can update a DataFrame rows values based on this list?

Henry Yik

IIUC just use reindex:

print (df.set_index("week").reindex(week_list).fillna({"product":"sku", "units_sold": 0}))

     product  units_sold
week                    
W36      sku         5.0
W37      sku         0.0
W38      sku         3.0
W39      sku         2.0
W40      sku         4.0
W01      sku         5.0
W02      sku         3.0
W03      sku         2.0
W04      sku         4.0
W05      sku         6.0

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

Insert rows based on values pandas dataframe

From Dev

Inserting named rows in dataframe based on a list pandas

From Dev

Pandas: drop rows based on duplicated values in a list

From Dev

Trim Pandas DataFrame based on values in list

From Dev

Filter pandas dataframe based on column list values

From Dev

How to update a subset of Pandas DataFrame rows with new (different) values?

From Dev

Selecting rows from a Dataframe based on values in multiple columns in pandas

From Java

Select rows of pandas dataframe based on column values with duplicates

From Dev

Deleting rows from Pandas dataframe based on groupby values

From Dev

Pandas: Change dataframe values based on dictionary and remove rows with no match

From Dev

selecting rows based on multiple column values in pandas dataframe

From Dev

Deleting DataFrame rows in Pandas based on column value - multiple values to remove

From Dev

Select CONSECUTIVE rows from a DataFrame based on values in a column in Pandas with Groupby

From Dev

Select rows from a DataFrame based on multiple values in a column in pandas

From Dev

How to assign unique values to groups of rows in a pandas dataframe based on a condition?

From Dev

Pandas dataframe, select n random rows based on number of unique values

From Dev

Select rows from a DataFrame based on last characters of values in a column in pandas

From Dev

How to filter a dataframe based on the values present in the list in the rows of a column in Python?

From Dev

Drop duplicate rows in dataframe based on multplie columns with list values

From Dev

Update values in pandas dataframe

From Dev

Pandas: How to remove rows from a dataframe based on a list?

From Java

Use a list of values to select rows from a pandas dataframe

From Dev

How to conditionally update DataFrame column in Pandas based on list

From Dev

Repeating columns based on corresponding column values and rows based on total values in pandas dataframe

From Dev

Select column dynamically in Pandas dataframe based on values in a list or another column

From Dev

Python, Pandas and for loop: Populate dataframe row based on a match with list values

From Dev

Update rows based on values present in forthcoming rows

From Dev

Update dataframe values based on comparison with another dataframe

From Dev

sort pandas dataframe based on list

Related Related

  1. 1

    Insert rows based on values pandas dataframe

  2. 2

    Inserting named rows in dataframe based on a list pandas

  3. 3

    Pandas: drop rows based on duplicated values in a list

  4. 4

    Trim Pandas DataFrame based on values in list

  5. 5

    Filter pandas dataframe based on column list values

  6. 6

    How to update a subset of Pandas DataFrame rows with new (different) values?

  7. 7

    Selecting rows from a Dataframe based on values in multiple columns in pandas

  8. 8

    Select rows of pandas dataframe based on column values with duplicates

  9. 9

    Deleting rows from Pandas dataframe based on groupby values

  10. 10

    Pandas: Change dataframe values based on dictionary and remove rows with no match

  11. 11

    selecting rows based on multiple column values in pandas dataframe

  12. 12

    Deleting DataFrame rows in Pandas based on column value - multiple values to remove

  13. 13

    Select CONSECUTIVE rows from a DataFrame based on values in a column in Pandas with Groupby

  14. 14

    Select rows from a DataFrame based on multiple values in a column in pandas

  15. 15

    How to assign unique values to groups of rows in a pandas dataframe based on a condition?

  16. 16

    Pandas dataframe, select n random rows based on number of unique values

  17. 17

    Select rows from a DataFrame based on last characters of values in a column in pandas

  18. 18

    How to filter a dataframe based on the values present in the list in the rows of a column in Python?

  19. 19

    Drop duplicate rows in dataframe based on multplie columns with list values

  20. 20

    Update values in pandas dataframe

  21. 21

    Pandas: How to remove rows from a dataframe based on a list?

  22. 22

    Use a list of values to select rows from a pandas dataframe

  23. 23

    How to conditionally update DataFrame column in Pandas based on list

  24. 24

    Repeating columns based on corresponding column values and rows based on total values in pandas dataframe

  25. 25

    Select column dynamically in Pandas dataframe based on values in a list or another column

  26. 26

    Python, Pandas and for loop: Populate dataframe row based on a match with list values

  27. 27

    Update rows based on values present in forthcoming rows

  28. 28

    Update dataframe values based on comparison with another dataframe

  29. 29

    sort pandas dataframe based on list

HotTag

Archive