Как создать два бина из 4 уровней в панде dataframe? - PullRequest
0 голосов
/ 11 декабря 2018

Один из моих столбцов в pandas фрейме данных выглядит следующим образом.Я хотел бы поместить в столбец «Daughter» такой столбец, чтобы строка с 0 получала метку «None», а строки, содержащие 1,2,3,4, - «Some».

Текущий набор данных, содержащий столбец

Daughter
0
0
1
2
4
3

Ожидаемый результат:

Daughter Daugther_fact
0         None
0         None
1         Some
2         Some
4         Some
3         Some

Я новый новичок в Python.Я знаю, что должен использовать pd.cut для назначения своих ярлыков, но я не уверен, как этого добиться.Любая помощь приветствуется!

Ответы [ 2 ]

0 голосов
/ 11 декабря 2018

Импорт pandas и numpy в первую очередь.

import numpy as np
import pandas as pd

Не могли бы вы попробовать следующее.

m=df['Daughter']!=0
df['Daughter_fact']=np.where(m,"Some","None")
df

Когда мы печатаем df, то вывод будет следующим.

  Daughter  Daughter_fact
0  0         None 
1  0         None 
2  1         Some 
3  2         Some 
4  4         Some 
5  3         Some 
0 голосов
/ 11 декабря 2018

Это то, что вам нужно?

pd.cut(df.Daughter,[-np.inf,0,np.inf],labels=['None','some'])
Out[35]: 
0    None
1    None
2    some
3    some
4    some
5    some
Name: Daughter, dtype: category
Categories (2, object): [None < some]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...