Pandas dataframe : assigning values according to ranks at row-level

S Leon

Consider the following pandas dataframe (df):

index    A      B      C      D      E      F      G      weights

1        NaN    1      NaN    NaN    NaN    3      2      [0.6 , 0.2 , 0.2]
2        3      2      NaN    1      NaN    NaN    NaN    [0.5 , 0.4 , 0.1]
3        NaN    NaN    1      2      3      NaN    NaN    [0.8 , 0.1 , 0.1]
4        NaN    3      1      NaN    NaN    2      NaN    [0.9 , 0.1 , 0.0]

Desired output (values matched to their corresponding weights at row-level) :

1        NaN    0.6    NaN    NaN    NaN    0.2    0.2
2        0.1    0.4    NaN    0.5    NaN    NaN    NaN
3        NaN    NaN    0.8    0.1    0.1    NaN    NaN
4        NaN    0.0    0.9    NaN    NaN    0.1    NaN

My current solution :

def assign_weights(row):
    for i in range(1,4):
        row.replace(i, row.weights[i-1], inplace=True)
    return row

df.apply(assign_weights, axis = 1)

Is there a faster way (for a big dataframe with more weights to be assigned) ?

Roman Pekar

Not sure if this will be faster, though:

>>> def worker(row):
...     n = np.array(row['weights'])
...     i = (row.notnull()) & (row.index != 'weights')
...     row[i] = n[row[i].astype('int').values - 1]
...     return row
>>>
>>> df.apply(worker, axis=1)
         A    B    C    D    E    F    G          weights
index                                                    
1      NaN  0.6  NaN  NaN  NaN  0.2  0.2  [0.6, 0.2, 0.2]
2      0.1  0.4  NaN  0.5  NaN  NaN  NaN  [0.5, 0.4, 0.1]
3      NaN  NaN  0.8  0.1  0.1  NaN  NaN  [0.8, 0.1, 0.1]
4      NaN  0.0  0.9  NaN  NaN  0.1  NaN  [0.9, 0.1, 0.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

Assigning multiple column values in a single row of pandas DataFrame, in one line

From Dev

Changing values in DataFrame row according to conditions

From Dev

Changing values in DataFrame row according to conditions

From Dev

Create new columns according row values in pandas

From Dev

Subsetting a dataframe in pandas according to column name values

From Dev

pandas dataframe count row values

From Dev

Comparing row values in pandas dataframe

From Dev

Group rows in dataframe by assigning values as a column in pandas dataframe

From Dev

Pandas adding extra row to DataFrame when assigning index

From Dev

How to Replace Values in Pandas Rows with Ranks

From Dev

Transform pandas dataframe columns to list according to number in row

From Dev

Split/Group pandas DataFrame by row, according to column's value continuity

From Dev

Assigning values to dataframe columns

From Dev

Assigning values to dataframe columns

From Dev

Change values in pandas dataframe according to value_counts()

From Dev

New column to pandas dataframe according to values from other column

From Dev

How to fill in missing values in Pandas dataframe according to pattern in column?

From Dev

Change values in pandas dataframe according to value_counts()

From Dev

pandas series or tidy dataframe: index level values to dataframe columns

From Dev

Assigning values according to set limits in R

From Dev

Pandas dataframe groupby and combine multiple row values

From Dev

Getting the index of pandas dataframe for matching row values

From Dev

Row Values to Column Array in Pandas DataFrame

From Dev

Selecting the values of the first row in pandas' DataFrame

From Dev

Pandas: Compare all values within a dataframe by row

From Dev

Comparing previous row values in Pandas DataFrame

From Dev

Fill in missing row values in pandas dataframe

From Dev

pandas dataframe- replace row values

From Dev

Selecting the values of the first row in pandas' DataFrame

Related Related

  1. 1

    Assigning multiple column values in a single row of pandas DataFrame, in one line

  2. 2

    Changing values in DataFrame row according to conditions

  3. 3

    Changing values in DataFrame row according to conditions

  4. 4

    Create new columns according row values in pandas

  5. 5

    Subsetting a dataframe in pandas according to column name values

  6. 6

    pandas dataframe count row values

  7. 7

    Comparing row values in pandas dataframe

  8. 8

    Group rows in dataframe by assigning values as a column in pandas dataframe

  9. 9

    Pandas adding extra row to DataFrame when assigning index

  10. 10

    How to Replace Values in Pandas Rows with Ranks

  11. 11

    Transform pandas dataframe columns to list according to number in row

  12. 12

    Split/Group pandas DataFrame by row, according to column's value continuity

  13. 13

    Assigning values to dataframe columns

  14. 14

    Assigning values to dataframe columns

  15. 15

    Change values in pandas dataframe according to value_counts()

  16. 16

    New column to pandas dataframe according to values from other column

  17. 17

    How to fill in missing values in Pandas dataframe according to pattern in column?

  18. 18

    Change values in pandas dataframe according to value_counts()

  19. 19

    pandas series or tidy dataframe: index level values to dataframe columns

  20. 20

    Assigning values according to set limits in R

  21. 21

    Pandas dataframe groupby and combine multiple row values

  22. 22

    Getting the index of pandas dataframe for matching row values

  23. 23

    Row Values to Column Array in Pandas DataFrame

  24. 24

    Selecting the values of the first row in pandas' DataFrame

  25. 25

    Pandas: Compare all values within a dataframe by row

  26. 26

    Comparing previous row values in Pandas DataFrame

  27. 27

    Fill in missing row values in pandas dataframe

  28. 28

    pandas dataframe- replace row values

  29. 29

    Selecting the values of the first row in pandas' DataFrame

HotTag

Archive