user3104352
user3104352

Reputation: 1130

How to convert values of panda dataframe to columns

I have a dataset given below:

weekid type amount
1       A    10   
1       B    20
1       C    30
1       D    40
1       F    50

2       A    70
2       E    80
2       B    100

I am trying to convert it to another panda frame based on total number of type values defined with:

import pandas as pd
import numpy as np

df=pd.read_csv(INPUT_FILE)
for type in df["type"].unique():
    //todo

My aim is to get a data given below:

weekid type_A type_B type_C type_D type_E type_F
    1    10    20      30     40     0     50
    2    70    100     0      0      80    0   

Is there any specific function that convert unique values as a column and fills the missing values as 0 for each weekId groups? I am wondering that how this conversion can be done efficiently?

Upvotes: 0

Views: 34

Answers (1)

itprorh66
itprorh66

Reputation: 3288

You can use the following:

df = df.pivot(columns=['type'], values=['amount'])
df.fillna(0)
dfp.columns = dfp.columns.droplevel(0)  

Given your input this yields:

type    A   B   C   D   F
weekid                  
1   10.0    20.0    30.0    40.0    50.0
2   70.0    80.0    100.0   0.0 0.0

Upvotes: 1

Related Questions