将布尔值分配给以数字开头的列值
我有这个数据集
Name Col1 Col2 Col3 Col4 Col5 Col6 Col7
tfedup.sm 1 1 1 1 1 1 1
13wham.cc 1 1 1 1 1 1 1
1chancerslane.cc 1 1 1 1 1 1 1
24layover.cc 1 1 1 1 1 1 1
301-joy.cycle.cc 1 1 1 1 1 1 1
我想创建一个新列,说明名称是否以数字开头。我做了
# Starts with numbers
df['Nane_num'] = list(
map(lambda x: x.isdigit(), df['Name']))
但它只给我 False 值。我上面的代码有什么问题?
回答
Series.str.isdigit与字符串的第一个值一起使用by str[0]:
df['Nane_num'] = df['Name'].str[0].str.isdigit()
print (df)
Name Col1 Col2 Col3 Col4 Col5 Col6 Col7 Nane_num
0 tfedup.sm 1 1 1 1 1 1 1 False
1 13wham.cc 1 1 1 1 1 1 1 True
2 1chancerslane.cc 1 1 1 1 1 1 1 True
3 24layover.cc 1 1 1 1 1 1 1 True
4 301-joy.cycle.cc 1 1 1 1 1 1 1 True