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

Shaykh

I have the following data frame:

df1_given =pd.DataFrame.from_dict({'col_0':[0, 3], 'col_1':[0.1, 2], 'col_2':[0.2, 0], 'col_3':[0.3, 2]})

The desired data frame is as follows:

df2_result =pd. DataFrame.from_dict({'col_0_0':[0, 0, 0, 0, 0, 0], 'col_0_1':[0, 0, 0, 0, 0, 0],'col_0_2':[0, 0, 0, 0, 0, 0],
   'col_1_0':[0.1, 0.1, 0.1, 0.1, 0.1, 0.1],'col_1_1':[0.1, 0.1, 0.1, 0.1, 0.1, 0.1],
   'col_3_0':[0.3, 0.3, 0.3, 0.3, 0.3, 0.3], 'col_3_1':[0.3, 0.3, 0.3, 0.3, 0.3, 0.3]})

I tried using .repeat() function but it did not work. The problem is to propagate/repeat columns based on corresponding column values (i.e., row2 in df_given) and rows based on total values in row2. Note that I have huge number of columns and large values in row2 in df_given in the actual dataframe.

df_tried = pd.DataFrame(df1_given.values.repeat(df1_given.col_0, axis=0), columns = df1_given.columns)
r.b.leon
import pandas as pd

df =pd.DataFrame.from_dict({'col_0':[0, 3], 'col_1':[0.1, 2], 'col_2':[0.2, 0], 'col_3':[0.3, 2]})


from collections import defaultdict
my_dict = defaultdict(list)

cols = list(df.columns)

for i in  range (0,len(cols)):
    if (df.iloc[1,i])>0:
        for x in range(0,int(df.iloc[1,i])):
            y = str(cols[i])
            my_dict[y+'_'+str(x)].append( df.iloc[0,i])

df_2 = pd.DataFrame(my_dict)
print(df_2)

but I don't understand the logic behind you wait for 6 rows instead of 1 at the result.but I think this solves your problem.

df_2
Out[57]: 
   col_0_0  col_0_1  col_0_2  col_1_0  col_1_1  col_3_0  col_3_1
0        0        0        0      0.1      0.1      0.3      0.3

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

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

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

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

From Dev

Conditional replacement of multiple columns based on column values in pandas DataFrame

From Dev

Changing values of one column based on the other three columns in pandas dataframe

From Dev

Changing values of one column based on the other three columns in pandas dataframe

From Dev

Pandas - Create Separate Columns in DataFrame Based on a Specific Column's Values

From Dev

Pandas: Delete rows based on multiple columns values

From Java

Update rows in Pandas Dataframe based on the list values

From Dev

Insert rows based on values pandas dataframe

From Java

Pandas get column values based on duplicate rows

From Java

Aggregating rows based on column values in pandas problem

From Dev

Filter pandas dataframe based on values in multiple columns

From Dev

pandas set columns based on values of the same column

From Dev

pandas set columns based on values of the same column

From Dev

Sort Pandas Dataframe on two columns with one column values repeating in sequence

From Dev

Replace values in pandas dataframe based on column names

From Dev

Find Pandas dataframe column based on values, in Python

From Dev

Filter pandas Dataframe based on max values in a column

From Dev

Filter pandas dataframe based on column list values

From Dev

Find Pandas dataframe column based on values, in Python

From Dev

Counting column values based on values in other columns for Pandas dataframes

From Dev

Replace values in column based on values in two other columns using pandas

From Dev

Remove rows based on columns values

From Dev

Python Pandas: Spread total values in dataframe based on percentages back to categories

Related Related

  1. 1

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

  2. 2

    Select rows of pandas dataframe based on column values with duplicates

  3. 3

    selecting rows based on multiple column values in pandas dataframe

  4. 4

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

  5. 5

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

  6. 6

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

  7. 7

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

  8. 8

    Conditional replacement of multiple columns based on column values in pandas DataFrame

  9. 9

    Changing values of one column based on the other three columns in pandas dataframe

  10. 10

    Changing values of one column based on the other three columns in pandas dataframe

  11. 11

    Pandas - Create Separate Columns in DataFrame Based on a Specific Column's Values

  12. 12

    Pandas: Delete rows based on multiple columns values

  13. 13

    Update rows in Pandas Dataframe based on the list values

  14. 14

    Insert rows based on values pandas dataframe

  15. 15

    Pandas get column values based on duplicate rows

  16. 16

    Aggregating rows based on column values in pandas problem

  17. 17

    Filter pandas dataframe based on values in multiple columns

  18. 18

    pandas set columns based on values of the same column

  19. 19

    pandas set columns based on values of the same column

  20. 20

    Sort Pandas Dataframe on two columns with one column values repeating in sequence

  21. 21

    Replace values in pandas dataframe based on column names

  22. 22

    Find Pandas dataframe column based on values, in Python

  23. 23

    Filter pandas Dataframe based on max values in a column

  24. 24

    Filter pandas dataframe based on column list values

  25. 25

    Find Pandas dataframe column based on values, in Python

  26. 26

    Counting column values based on values in other columns for Pandas dataframes

  27. 27

    Replace values in column based on values in two other columns using pandas

  28. 28

    Remove rows based on columns values

  29. 29

    Python Pandas: Spread total values in dataframe based on percentages back to categories

HotTag

Archive