如何从熊猫数据框中的4个级别创建两个垃圾箱?

时间:2018-12-11 03:18:04

标签: python pandas

我在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 :(得分:3)

这是您需要的吗?

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]

答案 1 :(得分:3)

首先导入pandasnumpy

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