根据其他列的值填充一列

时间:2018-08-10 16:56:36

标签: python pandas

让我说我有一个清单

vowels= ['a','e','i','o','u']

我有一个熊猫数据框

id       alphabet
 1         b
 2         a
 3         c
 4         i

我需要类似的输出

id       alphabet  label
 1         b         
 2         a       vowel
 3         c
 4         i       vowel

我尝试过

df.loc[df.alphabet in vowels, 'label'] = "vowel"

这给我一个错误。我该怎么办?

1 个答案:

答案 0 :(得分:2)

我认为需要函数Series.isin来满足条件。

如果需要缺少vowel的值,请使用:

df.loc[df.alphabet.isin(vowels), 'activity'] = "vowel"
print (df)
   id alphabet activity
0   1        b      NaN
1   2        a    vowel
2   3        c      NaN
3   4        i    vowel

或者如果需要空值并且vowel使用numpy.where

df['activity'] = np.where(df.alphabet.isin(vowels), 'vowel', '')
print (df)
   id alphabet activity
0   1        b         
1   2        a    vowel
2   3        c         
3   4        i    vowel