我有一个带有一列的数据框,将其称为df['old']
的字符串,如下所示。
a1bc
df3
ca9se
3as3d
iu23
我想做的是创建一个新列,该列指示原始列中的值是否以几个字符之一开头。
由于df['old'][0]
返回a1bc
,因此以下操作无效。
df['new'] = df['old'][0] in ['a','b']
有没有一种方法可以不使用循环?我不知道如何调用列,然后再调用该列的第一个字符值。
答案 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