I'm trying to broaden my python horizons and learn to do something that is fairly simple to execute in Excel.
I have this data:
Group Function
1 A
1 B
1 C
2 A
2 C
3 C
3 A
3 D
4 E
And I would like to a table that shows the information in this format (accomplished with a pivot table in Excel with Columns: Function, Rows: Group, Values: Count of Group)
Function
Group A B C D E
1 1 1 1
2 1 1
3 1 1 1
4 1
I've created a dataframe and added a column as below:
df = pd.read_excel(filepath)
df['1']=1
print(df.groupby('GROUP'))
but:
1) It's not recognizing the Function field because it's dtype: object 2) It's not really perfomring the function I'm looking for, which makes me think that it's probably not the function I need. I've also tried to work various iterations of pivot_table but can't seem to get that to work etiher.
Does anyone have any ideas? Thanks in advance.
How about pd.crosstab
? Read in your data as is, and then transform:
In [227]: pd.crosstab(df.Group, df.Function)
Out[227]:
Function A B C D E
Group
1 1 1 1 0 0
2 1 0 1 0 0
3 1 0 1 1 0
4 0 0 0 0 1
Use df.replace
to get rid of zeros:
In [228]: pd.crosstab(df.Group, df.Function).replace(0, '')
Out[228]:
Function A B C D E
Group
1 1 1 1
2 1 1
3 1 1 1
4 1
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With