Любой способ пометить переменные в Python? - PullRequest
2 голосов
/ 23 марта 2020

У меня есть код прокси в Python

Id=np.arange(1,16)

l=np.arange(1,101).tolist()

Ing=random.choices(l,k=15)

base2= pd.DataFrame({'Id':Id,'Ingreso':Ing,})

base2=base2.set_index('Id')

base2['Grupo'] = pd.cut(base2['Ingreso'], bins=[0,30,50,70,100],labels=[1,2,3,4], include_lowest=True)

grouped = base2.groupby(['Ingreso', 'Grupo'], as_index=False)

s=np.arange(0,2).tolist()

base2['Sexo']= random.choices(s,k=15)

С этим фреймом данных я хочу создать Crosstable

pd.crosstab(base2.Grupo,base2.Sexo)

И это мой вывод

Sexo   0  1
Grupo      
1      1  2
2      2  2
3      0  3
4      3  2

Но я хочу что-то подобное

Sexo Men Women 
Grupo      
1      1  2
2      2  2
3      0  3
4      3  2

Это возможно в Python?

1 Ответ

2 голосов
/ 23 марта 2020

Используйте Series.map до.

pd.crosstab(base2.Grupo, base2.Sexo.map({0 : 'Men', 1 : 'Women'}))

или DataFrame.rename после.

pd.crosstab(base2.Grupo, base2.Sexo).rename(columns={0 : 'Men', 1 : 'Women'})

Выход

Sexo Men Women 
Grupo      
1      1  2
2      2  2
3      0  3
4      3  2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...