我想从用户名中提取首字母,然后用首字母替换名字。
s = pd.DataFrame(['Robert Flitz', 'Hans Malek', 'Marek J. Beer'])当我尝试使用这个函数时
def initials(name):
init = ""
for n in name.str.split():
for i in n:
init+=i[0]
return init它返回单个字符串。
initials(s[0])
'RFHMMJB'我想看上去像
'RF'
'HM'
'MJB'有什么想法吗?
发布于 2019-09-10 10:47:41
还可以使用正则表达式:
s[0].str.replace('[^A-Z]', '')
0 RF
1 HM
2 MJB发布于 2019-09-10 10:23:01
s[0].apply(lambda x: ''.join(i[0] for i in x.split()))输出:
0 RF
1 HM
2 MJB
Name: 0, dtype: object更改numpy数组
np.array(s[0].apply(lambda x: ''.join(i[0] for i in x.split())))输出:
array(['RF', 'HM', 'MJB'], dtype=object)发布于 2019-09-10 10:28:38
您可以编辑您的首字母函数。在内部循环结束后向init变量追加一条新行。
def initials(name):
init = ""
for n in name.str.split():
for i in n:
init+=i[0]
init+= "\n"
return inithttps://stackoverflow.com/questions/57868623
复制相似问题