如何从DataFram中提取姓名的首字母

2024-04-29 03:33:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从用户名中提取缩写,然后用缩写替换名称

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'

有什么想法吗?你知道吗


Tags: namein名称dataframeforinitrobert用户名
3条回答

您可以编辑您的缩写函数。在内部循环结束后向init变量追加新行。你知道吗

def initials(name):
    init = ""
    for n in name.str.split():
        for i in n:
            init+=i[0]
        init+= "\n"
    return init
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)

也可以使用正则表达式:

s[0].str.replace('[^A-Z]', '')
0     RF
1     HM
2    MJB

相关问题 更多 >