将文本列转换为二进制,其中一组值= 1,所有其他值= 0

时间:2019-04-03 22:39:17

标签: pandas python-2.7

我有一列想要转换为1和0的所有文本。首先,我想将该列中的特定值列表转换为1,并将所有其他值转换为0。

因此在下面的示例中,我想将单词“ mix”和“ remix”转换为1,而将所有其他值转换为0。

我正在熊猫中尝试这样做,而且我确实知道如何转换值,但是在将所有其他值都转换为零时遇到了麻烦。

DF:

ID      Value
abc123  mix 
abc123  remix
abc123  original
abc123  original
xyz987  mix 
xyz987  mix 
xyz987  original
xyz987  original
xyz987  unofficial
xyz987  unofficial

输出:

ID      Value
abc123  1
abc123  1
abc123  0
abc123  0
xyz987  1
xyz987  1
xyz987  0
xyz987  0
xyz987  0
xyz987  0

然后,我想对每个唯一值的“值”列求和,以使输出看起来像:

abc123 2
xyz987 2

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:2)

isin链与groupby sum

df.Value.isin(['mix','remix']).groupby(df.ID).sum()
Out[429]: 
ID
abc123    2.0
xyz987    2.0
Name: Value, dtype: float64