Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- test <- data.frame(convert_me=c('Convert1','Convert2','Convert3'),
- values=rnorm(3,45, 12), age_col=c('23','33','44'))
- test
- library(reshape2)
- t <- dcast(test, values ~ convert_me+age_col, length )
- t
- convert_me values age_col
- Convert1 21.71502 23
- Convert2 58.35506 33
- Convert3 60.41639 44
- values Convert2_33 Convert1_23 Convert3_44
- 21.71502 0 1 0
- 58.35506 1 0 0
- 60.41639 0 0 1
- In [14]: pd.crosstab(index=df['values'], columns=[df['convert_me'], df['age_col']])
- Out[14]:
- convert_me Convert1 Convert2 Convert3
- age_col 23 33 44
- values
- 21.71502 1 0 0
- 58.35506 0 1 0
- 60.41639 0 0 1
- In [18]: df.pivot_table(index=['values'], columns=['age_col', 'convert_me'], aggfunc=len).fillna(0)
- Out[18]:
- age_col 23 33 44
- convert_me Convert1 Convert2 Convert3
- values
- 21.71502 1 0 0
- 58.35506 0 1 0
- 60.41639 0 0 1
- In [15]: df_cross = pd.crosstab(index=df['values'], columns=[df['convert_me'], df['age_col']])
- In [16]: df_cross.columns = ["{0}_{1}".format(l1, l2) for l1, l2 in df_cross.columns]
- In [17]: df_cross
- Out[17]:
- Convert1_23 Convert2_33 Convert3_44
- values
- 21.71502 1 0 0
- 58.35506 0 1 0
- 60.41639 0 0 1
Add Comment
Please, Sign In to add comment