如何根据另一个列中的第一个字符定义一个新列? (熊猫)

时间:2018-11-03 19:10:03

标签: python pandas

我有一个带有一列的数据框,将其称为df['old']的字符串,如下所示。

a1bc  
df3   
ca9se 
3as3d 
iu23  

我想做的是创建一个新列,该列指示原始列中的值是否以几个字符之一开头。

由于df['old'][0]返回a1bc,因此以下操作无效。

df['new'] = df['old'][0] in ['a','b']

有没有一种方法可以不使用循环?我不知道如何调用列,然后再调用该列的第一个字符值。

1 个答案:

答案 0 :(得分:4)

您可以使用str在每一行中为字符串建立索引,然后使用isin来检查它是否在列表中(使用in会导致ValueError: The truth value of a Series is ambiguous):

>>> df
     old
0   a1bc
1    df3
2  ca9se
3  3as3d
4   iu23

df['new'] = df.old.str[0].isin(['a','b'])

>>> df
     old    new
0   a1bc   True
1    df3  False
2  ca9se  False
3  3as3d  False
4   iu23  False