python之查看列表中每个元素的字符串的第一个字符
jirigala
阅读:184
2025-06-02 22:19:02
评论:0
我有一个 pandas 数据框,其中有一列名为“图片”;该列的值以数字或字母开头。我想要做的是创建一个新列来检查值是否以字母或数字开头,并相应地填充该新列。我正在使用 np.where,我的代码如下(raw_master 是数据框,“数据库”是新列):
def iaps_or_naps(x):
if x in ["1","2","3","4","5","6","7","8","9"]:
return True
else:
return False
raw_master['database'] = np.where(iaps_or_naps(raw_master.picture[?][0])==True, 'IAPS', 'NAPS')
我的问题是,如果我只执行 raw_master.picture[0],它会检查整个字符串的值,这不是我需要的。我需要第一个字符;但是,如果我执行 raw_master.picture[0][0],那只会计算整个数据帧第一行的第一个字符。顺便说一句,问号只是表示我不确定该放什么。
我怎样才能得到它,以便它为每一行取字符串的第一个字符?
非常感谢!
请您参考如下方法:
您不需要为此编写自己的函数。以这个小df为例:
s = pd.DataFrame(['3asd', 'asd', '3423', 'a123'])
看起来像:
0
0 3asd
1 asd
2 3423
3 a123
使用内置的 Pandas :
# checking first column, s[0], first letter, str[0], to see if it is digit.
# if so, assigning IAPS, if not, assigning NAPS
s['database'] = np.where(s[0].str[0].str.isdigit(), 'IAPS', 'NAPS')
输出:
0 database
0 3asd IAPS
1 asd NAPS
2 3423 IAPS
3 a123 NAPS
将此应用于您的数据框:
raw_master['database'] = np.where(raw_master['picture'].str[0].str.isdigit(), 'IAPS', 'NAPS')
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。



